繁体   English   中英

如何使用[camera takePhoto]和使用UIImagePicker编辑-UIImagePickerController.allowsEditing = YES

[英]How do I use [camera takePhoto] and edit using UIImagePicker - UIImagePickerController.allowsEditing = YES

我会觉得很愚蠢,但是我到处搜索并且没有找到答案。 我已经能够使用默认相机的控件拉出“编辑”视图。 但是,我在上面放了一个覆盖层,并且有一个UIButton连接到IBAction拍摄照片,看起来像[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];

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

根据苹果文档中的takePicture:方法:

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

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

似乎配置了这种方法(自定义叠加层)以便由您自己管理。 即使“ allowsEditing = YES”,拍摄的照片也将直接发送到imagePickerController:didFinishPickingMediaWithInfo:。

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

备查:

无法显示“编辑”屏幕的问题与相机相关。showCameraControls = NO; 覆盖的存在与否与覆盖无关(因为当前接受的答案状态)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM