我们常用的拍照模块,大部分代码都是一样的,甚至都不用改就可以直接拖进项目里面使用.但是这仅仅是简单的相机拍照功能,如果我们希望使用更多的功能,比如说连拍等,就需要多一点处理.
我们还是使用UIImagePickerController
self.picker = [[UIImagePickerController alloc] init];
self.picker.delegate = self;
self.picker.allowsEditing = NO;
//判断是否可以打开照相机
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
//UIImagePickerControllerSourceTypeSavedPhotosAlbum:相机胶卷
self.picker.sourceType = UIImagePickerControllerSourceTypeCamera;
}
//自定义你想展示的view
self.picker.cameraOverlayView = yourView;
//隐藏apple标准相机UI
self.picker.showsCameraControls = NO;
self.picker.cameraFlashMode = UIImagePickerControllerCameraFlashModeOff;
[self presentViewController:self.picker animated:YES completion:nil];
其中cameraOverlayView和showsCameraControls这两个属性就决定了相机是否显示原生界面和是否隐藏默认拍照工具.
如果我们自定义一个页面,有一个按钮用来拍照,那我们可以直接调用
[self.picker takePicture];
在picker的delegate方法里面
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info
{
}
就可以获取到拍摄的照片了.
至于连拍,就顺理成章了