2

我会感到很愚蠢,但我到处搜索并没有找到答案。我已经能够使用默认相机的控件拉出“编辑”视图。但是,我在其上添加了一个叠加层,并且我有一个连接到 IBAction 拍摄照片的 UIButton,看起来像 [UIImagePickerController takePicture]。

但是,即使我将允许编辑设置为“是”,它也会完全跳过编辑部分。是否有另一个命令可以调用它?现在,它直接进入 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];
4

2 回答 2

6

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

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

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

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

似乎这种方法(自定义覆盖)被配置为由您自己管理。即使 "allowsEditing = YES" 拍摄的图片也会直接发送到 imagePickerController:didFinishPickingMediaWithInfo:。

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

于 2013-07-31T04:31:59.840 回答
0

备查:

不显示Edit画面的问题与camera.showCameraControls = NO;有关 覆盖的存在与否与它无关(如当前接受的答案所述)

可能的解决方法: 在您的 IBAction [camera takePicture] 上再次将它们设置为 YES。它们只会显示几分之一秒,这将允许编辑屏幕出现。然后在点击“Retake”时你会遇到问题,在这种情况下,你必须通过委托捕获该动作并将它们再次隐藏在那里。

于 2016-01-18T17:21:23.423 回答