iphone 怎么使用图片选取器 UIImagePickerController
1 #import <UIKit/UIKit.h> 2 3 @interface ViewController : UIViewController <UINavigationControllerDelegate,UIImagePickerControllerDelegate>{ 4 UIImageView *backImageView; 5 } 6 7 @property(retain, nonatomic) IBOutlet UIButton *showImgPickerButton; 8 @property(retain, nonatomic) IBOutlet UIImageView *backImageView; 9 10 - (IBAction)showImagePicker:(id)sender; 11 12 @end
1 // 2 // ViewController.m 3 // test6 4 // 5 // Created by Totem on 12-7-2. 6 // Copyright (c) 2012年 __MyCompanyName__. All rights reserved. 7 // 8 9 #import "ViewController.h" 10 11 @implementation ViewController 12 13 @synthesize showImgPickerButton; 14 @synthesize backImageView; 15 16 - (IBAction)showImagePicker:(id)sender 17 { 18 #if TARGET_IPHONE_SIMULATOR 19 UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 20 #else 21 UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera; 22 #endif 23 if ([UIImagePickerController isSourceTypeAvailable:sourceType]) { 24 NSLog(@"调用UIImagePickerController"); 25 UIImagePickerController *picker = [[[UIImagePickerController alloc] init] autorelease]; 26 picker.delegate = self; 27 picker.allowsEditing = YES; 28 29 [self presentModalViewController:picker animated:YES]; 30 // [self.navigationController pushViewController:picker animated:YES]; 31 }else { 32 NSLog(@"为调用UIImagePickerController"); 33 } 34 } 35 36 //两种完成选取后调用方式之一 37 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo 38 { 39 NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithDictionary:editingInfo]; 40 [dic setObject:image forKey:@"UIImagePickerControllerEditedImage"]; 41 UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil); 42 [self dismissModalViewControllerAnimated:YES]; 43 [backImageView setImage:image]; 44 } 45 46 //两种完成选取后调用方式之一 47 //- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ 48 // if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) { 49 // NSLog(@"来自Camera相机的图片"); 50 // //如果是 来自照相机的image,那么先保存 51 // UIImage* original_image = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; 52 // UIImageWriteToSavedPhotosAlbum(original_image, self, 53 // @selector(image:didFinishSavingWithError:contextInfo:), 54 // nil); 55 // }else if(picker.sourceType == UIImagePickerControllerSourceTypePhotoLibrary){ 56 // NSLog(@"来自PhotoLibrary"); 57 // }else if(picker.sourceType == UIImagePickerControllerSourceTypeSavedPhotosAlbum){ 58 // NSLog(@"来自"); 59 // } 60 // //获得编辑过的图片 61 // UIImage* image = [info objectForKey: @"UIImagePickerControllerEditedImage"]; 62 // [self dismissModalViewControllerAnimated:YES]; 63 // [backImageView setImage:image]; 64 //} 65 66 - (void)image:(UIImageView*)image didFinishSavingWithError:(NSString*)error contextInfo:(NSString*) 67 context{ 68 NSLog(@"保存完成!"); 69 } 70 71 - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{ 72 [self dismissModalViewControllerAnimated:YES]; 73 } 74 75 - (void)dealloc 76 { 77 [showImgPickerButton release]; 78 [backImageView release]; 79 [super dealloc]; 80 } 81 82 - (void)viewDidLoad 83 { 84 [super viewDidLoad]; 85 NSError *error = [[[NSError alloc] init] autorelease]; 86 87 CFShow([[NSFileManager defaultManager] contentsOfDirectoryAtPath:[NSHomeDirectory() stringByAppendingString:@"/documents"] error:&error]); 88 // Do any additional setup after loading the view, typically from a nib. 89 } 90 91 - (void)viewDidUnload 92 { 93 [super viewDidUnload]; 94 // Release any retained subviews of the main view. 95 } 96 97 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 98 { 99 return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); 100 } 101 102 @end
xib文件中只有一个UIImageView作为背景,还有一个按钮UIButton用来显示UIImagePickerController