如何使用[相机拍摄]并使用UIImagePicker进行编辑 - UIImagePickerController.allowsEditing = YES

Jus*_*der 2 camera objective-c photos uiimagepickercontroller ios

我会感到愚蠢,但我到处寻找并没有找到答案.我已经能够使用默认相机的控件拉出"编辑"视图.然而,我在它上面添加了一个叠加层,我有一个UIButton连接到IBAction拍照,看起来像[UIImagePickerController takePicture].

但是,即使我设置允许编辑为YES,它也完全跳过编辑部分.是否有另一个命令来调用它?现在,它只是直接到didFinishPickingMediaWithInfo.

    camera.sourceType = UIImagePickerControllerSourceTypeCamera;
    camera.cameraDevice = UIImagePickerControllerCameraDeviceRear;
    camera.showsCameraControls = NO;
    camera.navigationBarHidden = YES;
    camera.toolbarHidden = YES;
    camera.wantsFullScreenLayout = NO;
    camera.allowsEditing = YES;
    camera.cameraOverlayView = overlay;
    [self presentViewController:camera animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

然后在IBAction

    [camera takePicture];
Run Code Online (Sandbox Code Playgroud)

enr*_*ias 6

可能重复:UIImagePickerController不显示编辑屏幕

根据takePicture:Apple文档中的方法:

将此方法与自定义叠加视图结合使用可启动静态图像的编程捕获.这支持在不离开界面的情况下拍摄多张照片,但需要隐藏默认的图像选择器控件.

在捕获图像时调用此方法无效.您必须等到关联的委托对象收到imagePickerController:didFinishPickingMediaWithInfo:消息后再捕获另一张图片.

看来这种方法(自定义覆盖)是为了自己管理而配置的.即使"allowsEditing = YES",拍摄的照片也会直接发送到imagePickerController:didFinishPickingMediaWithInfo:.

基于此,如果我们想使用我们的自定义用户界面编辑拍摄的图片,我们应该为此创建一个相应的自定义编辑屏幕.