UIImagePickerController是用来管理拍照片、拍视频或者是获取手机里的照片、视频的一个类。
要显示一个image picker Controller,首先的判断这个界面能否显示。
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary])
{
//执行相关操作
}
UIImagePickerControllerSourceTypePhotoLibrary 进入照片界面
UIImagePickerControllerSourceTypeSavedPhotosAlbum 进入相机胶卷界面(就是照片界面选择默认的分类之后的界面)
UIImagePickerControllerSourceTypeCamera 进入拍照/摄像界面(根据参数不同,来确定是拍照还是摄像或者两者都是)
picker.sourceType = UIImagePickerControllerSourceTypeCamera; // 进入照相界面
picker.allowsEditing = YES; // 设置为YES之后,选择照片之后会出现一个框,可以拖动照片,如果是拍的照片也会出现框,但不能拖动
UIView *redView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
redView.backgroundColor = [UIColor redColor];
picker.cameraOverlayView = redView; // 这个属性可以自定义picker的界面
picker.cameraFlashMode = UIImagePickerControllerCameraFlashModeOff; // 默认关闭闪光灯
picker.showsCameraControls = NO; // 不显示拍照的按钮,闪光灯按钮,前后摄像头切换按钮
picker.cameraDevice = UIImagePickerControllerCameraDeviceFront; // 改为前置摄像头
picker.delegate = self; // 设置委托,在选择图片之后进行相应的处理
接着在委托方法里实现对图片的获取
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
// 如果之前将allowEditing属性设置为YES,这里就能获取处理过的图片
UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];
[picker dismissViewControllerAnimated:YES completion:nil];
}