1.简介
要获得手机里面的相片,只能用系统的方法,系统为我们提供了UIImagePickerController,使用它并继承协议就可以了。注意模拟器里面要有相片,如果没有就拖一张图片到模拟器里面,这时模拟器会打开浏览器显示图片,单击图片(时间稍微长点),会出现菜单,选择存储图片即可,如图
2.实现
先在 - (void)viewDidLoad 里面做一个button,类型是UIButtonTypeCustom,tag为1000,图片随意。
UIButton *headBtn = [UIButton buttonWithType:UIButtonTypeCustom];
headBtn.frame = CGRectMake(120, 150, 80, 80);
[headBtn setImage:[UIImage imageNamed:@"sign_photo.png"] forState:UIControlStateNormal];
[headBtn addTarget:self action:@selector(headDown) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:headBtn];
headBtn.tag =1000;
绑定事件
-(void)headDown
{
//实例化一个ImagePicker的对象,可以获取摄像头、相册等。
UIImagePickerController *picker = [[UIImagePickerController alloc]init];
picker.delegate = self;//必要
//设置类型(相册、)
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:picker animated:YES completion:nil];
[picker release];
}
处理协议方法
//取消
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
NSLog(@"取消");
[picker dismissViewControllerAnimated:YES completion:nil];
}
//选了某一张照片后调用这个方法
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIButton *btn = (UIButton *)[self.view viewWithTag:1000];
//通过下面方法获得选择的那个图片
UIImage *img = [info objectForKey:UIImagePickerControllerOriginalImage];
[btn setImage:img forState:UIControlStateNormal];
[picker dismissViewControllerAnimated:YES completion:nil];
}
如图