谈谈UIImagePickerController

在工作过程中很多时候需要用到从手机相册获取图片,或者调用相机拍照这个功能,在这呢,就对这一块做个简单的讲解.

调用系统相册或者摄像头都需要借助一个类UIImagePickerController.

我们先建个工程并做如图的准备工作,一个UIImageView,一个UIButton


在按钮的点击事件中开始我们的代码

设置代理是因为我们选择一张图片或者拍摄完成后,需要在代理方法中获取我们需要的图片,在这里需要大家去签订两个协议UIImagePickerControllerDelegate UINavigationControllerDelegate样式这里有三种解释如下

这里选择的直接打开相机,运行之后点击按钮效果如下

直接进入拍摄页面,点击拍摄按钮,将成功拍摄一张图片,并进入编辑模式,效果如下

在这里我们可以对图片进行,放大缩小拖动等操作,另外有重拍和使用照片的选项.加入选择的样式是访问相册,运行之后结果如下

当我们选定图片之后,跳转回来,我们需要取出我们刚才所选的图片,那么就需要借助下面这个代理方法

我们从字典中获取图片,获取原图或者编辑之后的图,并将选好的图赋值给了我们的UIImageView,最后收回UIImagePickerController

可能有人留意到自己运行出来之后按钮上的文字都是英文,这里我们只需要对info.plist文件添加一个属性就好了

再进一步,加入我想自定义照相机的界面该怎么办?

原理:隐藏系统的工具栏,自己创建.代码如下:

运行结果如下(略丑)个人感觉使用系统本身的界面就非常不错~~~

取消按钮,确定按钮对应的方法如下:

UIImagePickerController继承自UINavigationController,自然可以push和pop一些viewcontroller实现导航效果。那么我们在自定义照相机画面的时候可以在拍摄完后push到下一个viewcontroller进行照片的编辑。

就扯到这吧~再见!!!!

推荐阅读更多精彩内容