您的位置:首页 > 产品设计 > UI/UE

UIImagePickerController 图像选取器--在iPhone中调用照相机、照片库—IOS开发

2012-05-08 11:27 387 查看
声明
欢迎转载,但是请尊重作者劳动成果,转载请保留此框内声明,谢谢。

文章出处:http://blog.csdn.net/iukey
UIImagePickerController
图像选取器是一种导航控制器类,让你可以在应用程序中添加简单的图像选择功能或者照相机界面。用户会看到一个图像选择屏幕,在其中挑选相片,相片的来源则
是他自己的相片库、保存下来的相片集或者照相机。当用户选定一个相片后,就会通过 UIImagePickerDelegate
协议中的方法,通知选取器的委托。

你可以用 UIImagePickerController 类来创建图像选取器,并且可以将其作为一个独立的导航控制器,添加到窗口中。

一、创建并添加到视图中

[java] view plaincopyprint?

UIImagePickerController* picker = [[UIImagePickerController alloc]init];

[self.view addSubview:picker.view];

二、图像来源

你可以通过 sourceType 属性设定多种图像来源,呈现给用户:

[java] view plaincopyprint?

picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;

可以使用下列来源:

[java] view plaincopyprint?

enum {

UIImagePickerControllerSourceTypePhotoLibrary,//相片库

UIImagePickerControllerSourceTypeCamera,//照相机

UIImagePickerControllerSourceTypeSavedPhotosAlbum//保存的相片

};

typedef NSUInteger UIImagePickerControllerSourceType;

三、图像编辑
要让用户可以随意移动以及缩放图像,可以将 allowsImageEditing 属性设置为 YES,打开图像编辑功能:

[java] view plaincopyprint?

picker.allowsEditing=YES;

四、图像选取
当用户选择一个图片之后,选择器的委托会通过 didFinishPickingImage 方法接到通知。代理会得到一个包含有该图像的 UIImage 对象,如果编辑功能开启的话,还会得到一个包含了编辑属性的NSDictionary。

设置选取器的 delegate ,就可以将一个委托赋予选择器:

[java] view plaincopyprint?

picker.delegate =self;

在你的委托类中实现下面的方法,这样当选取一个图像时,委托类就会得到通知:

[java] view plaincopyprint?

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo{

/*添加处理选中图像代码*/

}

方法的参数包括一个指针,指向报告当前操作的图像选取器控制器,这样你就可以在一个委托中处理多个选取器。参数还包括一个指向 UIImage 对象自身的指针,以及一个字典对象,其中包含有关于图像在屏幕上如何被缩放以及移动的信息。
你可能在用户取消图像选择时也想要得到通知。要达到这一目的,要在代理中实现 imagePickerControllerDidCancel 方法。他会在取消选择时被调用,以指向被取消的图像选取器指针为参数:

[java] view plaincopyprint?

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{

/*添加代码,处理选中图像又取消的情况*/

}

最后附上代码例子。UIImagePickerControllerDemo
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐