標籤:des style blog http color io os ar 使用
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 編程--使用代碼建立新的相簿隨加項目