【问题标题】:UIImagePickerController with allowsEditing doesn't allow panning to crop带有allowEditing的UIImagePickerController不允许平移裁剪
【发布时间】:2013-11-28 19:10:00
【问题描述】:

我在这里看到了这个问题:UIImagePicker allowsEditing stuck in center

以前好像有人遇到过这个问题,但是没有明确的解决办法。

复制步骤:

  1. 设置allowEditing = YES
  2. 拍照
  3. 裁剪窗口出现,但每次我平移图像时,它都会快速回到中心。

我使用的是 iOS 7.0.3。

这是我的代码:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];

imagePicker.delegate = self;
imagePicker.modalPresentationStyle = UIModalPresentationCurrentContext;
imagePicker.allowsEditing = YES;
[self presentViewController:imagePicker animated:YES completion:nil];

【问题讨论】:

  • 它在 iOS 6 上的工作方式相同。虽然看起来很疯狂,但我怀疑这就是它的工作方式。 “编辑”的图像也非常小(低像素数),这使其对我的目的毫无用处。但我一直懒得做(或找到)另一个编辑解决方案。
  • 这不可能按预期工作。如果不能裁剪图像,为什么还要允许交互?
  • 我不能不同意这没有意义。另一方面,当我将 allowEditing 设置为 YES 时,返回的“已编辑”图像(iPhone 4s、iOS 7)只有 640x640 像素(即实际上是图像选择器屏幕上编辑方块的屏幕截图)。这也没有道理。我得出的结论是,我对它应该如何工作的想法根本不是 Apple 如何让它工作的。
  • 幸运的是,我们使用的图像最终是 640x640。奇怪的是,当您从照片库中选择图像时,可以进行裁剪。对我来说,这表明用相机拍摄的照片没有按预期工作。
  • 您找到解决方案了吗?对我来说,在 iOS 7.1 中根本不会出现裁剪窗口

标签: ios ios7 uiimagepickercontroller


【解决方案1】:
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
            picker.delegate = self;
            picker.allowsEditing = YES; // YES
            picker.sourceType = UIImagePickerControllerSourceTypeCamera;
            [self presentViewController:picker animated:YES completion:NULL];

试试这个,我认为你缺少 sourceType 上的 UIImagePickerControllerSourceTypeCamera。看看有没有用。

【讨论】:

    【解决方案2】:

    你只需要写下面一行代码。

    UIImage *image = [info valueForKey:UIImagePickerControllerEditedImage];
    

    【讨论】:

    • 差异。 didFinishPickingMediaWithInfo 中返回的图像种类。(UIImagePickerControllerCropRect, UIImagePickerControllerEditedImage, UIImagePickerControllerMediaTypem, UIImagePickerControllerOriginalImage, UIImagePickerControllerReferenceURL)
    猜你喜欢
    • 2015-03-28
    • 2011-01-19
    • 1970-01-01
    • 2013-08-19
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 2013-09-27
    相关资源
    最近更新 更多