如何使用并使用UIImagePicker进行编辑 – UIImagePickerController.allowsEditing = YES

我会觉得愚蠢的,但我到处search,并没有find答案。 我已经能够使用默认相机的控制拉起“编辑”视图。 然而,我扔了一个覆盖它,我有一个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]; 

然后在IBAction

  [camera takePicture]; 

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

根据Apple文档中的takePicture方法:

将此方法与自定义叠加视图结合使用,可启动静态图像的编程捕获。 这支持拍摄多个图片而不离开界面, 但要求您隐藏默认的图像select器控件。

在捕获图像时调用此方法不起作用。 必须等到关联的委托对象接收到imagePickerController:didFinishPickingMediaWithInfo:消息后才能捕获其他图片。

看来,这种方法(自定义覆盖),它被configuration为自己pipe理。 即使“allowsEditing = YES”,拍摄的照片也会直接发送到imagePickerController:didFinishPickingMediaWithInfo :.

基于这一点,如果我们想要使用我们的自定义用户界面编辑拍摄的图片,我们应该创build一个相应的自定义编辑屏幕。

备查:

不显示编辑屏幕的问题与camera.showCameraControls = NO; 覆盖的存在或不存在与它无关(如当前接受的答案所述)

可能的解决方法:在您的IBAction [camera takePicture]将它们再次设置为YES。 他们将只显示几分之一秒,这将允许编辑屏幕出现。 那么当你点击“重拍”的时候你会遇到一个问题,那么你必须通过委托来捕捉那个动作,然后再把它们隐藏起来。