首页 > 代码库 > ios 编程--使用代码创建新的相册随加项目
ios 编程--使用代码创建新的相册随加项目
2013-04-23 13:29:04| 分类: 默认分类 |举报|字号 订阅编写ios 编程--使用代码创建新的相册,是参考http://www.touch-code-magazine.com/ios5-saving-photos-in-custom-photo-album-category-for-download/来写的。ALAssetsLibrary+CustomPhotoAlbum.h 里的代码是:#import <Foundation/Foundation.h>#import <AssetsLibrary/AssetsLibrary.h>typedef void(^SaveImageCompletion)(NSError* error);@interface ALAssetsLibrary(CustomPhotoAlbum)-(void)saveImage:(UIImage*)image toAlbum:(NSString*)albumName withCompletionBlock:(SaveImageCompletion)completionBlock;-(void)addAssetURL:(NSURL*)assetURL toAlbum:(NSString*)albumName withCompletionBlock:(SaveImageCompletion)completionBlock;@endALAssetsLibrary+CustomPhotoAlbum.m里的代码是:#import "ALAssetsLibrary+CustomPhotoAlbum.h"@implementation ALAssetsLibrary(CustomPhotoAlbum)-(void)saveImage:(UIImage*)image toAlbum:(NSString*)albumName withCompletionBlock:(SaveImageCompletion)completionBlock{ [self writeImageToSavedPhotosAlbum:image.CGImage orientation:(ALAssetOrientation)image.imageOrientation completionBlock:^(NSURL* assetURL, NSError* error) { if (error!=nil) { completionBlock(error); return; } [self addAssetURL: assetURL toAlbum:albumName withCompletionBlock:completionBlock]; }];}-(void)addAssetURL:(NSURL*)assetURL toAlbum:(NSString*)albumName withCompletionBlock:(SaveImageCompletion)completionBlock{ __block BOOL albumWasFound = NO; [self enumerateGroupsWithTypes:ALAssetsGroupAlbum usingBlock:^(ALAssetsGroup *group, BOOL *stop) { if ([albumName compare: [group valueForProperty:ALAssetsGroupPropertyName]]==NSOrderedSame) { albumWasFound = YES; [self assetForURL: assetURL resultBlock:^(ALAsset *asset) { [group addAsset: asset]; completionBlock(nil); } failureBlock: completionBlock]; return; } if (group==nil && albumWasFound==NO) { __weak ALAssetsLibrary* weakSelf = self; [self addAssetsGroupAlbumWithName:albumName resultBlock:^(ALAssetsGroup *group) { [weakSelf assetForURL: assetURL resultBlock:^(ALAsset *asset) { [group addAsset: asset]; completionBlock(nil); } failureBlock: completionBlock]; } failureBlock: completionBlock]; return; } } failureBlock: completionBlock];}@end 接下来,在AppDelegate.m导入RootViewController。RootViewController.h 里的代码是:#import <UIKit/UIKit.h>#import <AssetsLibrary/AssetsLibrary.h>@interface RootViewController : UIViewController <UIImagePickerControllerDelegate>@property (strong, atomic) ALAssetsLibrary * library;@end在RootViewController.m里的代码是:#import "RootViewController.h"@interface RootViewController ()@end@implementation RootViewController@synthesize library;- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{ self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self;}-(void)dealloc{ [library release]; library = nil; [super dealloc];}- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view. library = [[ALAssetsLibrary alloc] init]; UIButton * createGroup = [UIButton buttonWithType:UIButtonTypeRoundedRect]; createGroup.frame = CGRectMake( 20, 150, 100, 40); [createGroup setTitle:@"takePhoto" forState:UIControlStateNormal]; [createGroup addTarget:self action:@selector(takePhotoClick) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:createGroup]; }- (void)didReceiveMemoryWarning{ [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}- (void)takePhotoClick{ UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera; imagePickerController.editing = YES; imagePickerController.delegate = (id)self; [self presentModalViewController:imagePickerController animated:YES];}- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo{ [library saveImage:image toAlbum:@"Touch Code Magazine" withCompletionBlock:^(NSError *error) { if (error!=nil) { NSLog(@"Big error: %@", [error description]); } }]; [picker dismissModalViewControllerAnimated:NO];}- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{ [picker dismissModalViewControllerAnimated:NO];}@end接下来,导入AssetsLibrary.framework。就可以运行了。
ios 编程--使用代码创建新的相册随加项目
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。