UIImagePickerController裁剪的图像高于用户选择的图像

时间:2018-01-05 19:18:38

标签: ios uiimage uiimagepickercontroller

编辑:这是UIImagePicker allowsEditing stuck in center的完全重复,但这似乎是完全不同的问题。这个问题与用户无法移动裁剪框有关(具有额外的怪异,它只发生在相机上)。这个问题是关于图像选择器将错误的值返回到我的代码中。

我的UIImagePickerController上有info[UIImagePickerControllerEditedImage],因此可以裁剪图片:

enter image description here

open中出现的图像总是看起来正常并被裁剪,但就好像裁剪窗口向上滑了~10%:

enter image description here

你可以看到上面的裁剪窗口穿过了叶子的中脉,但是在拾取器的输出中,中脉完全可见。

有谁熟悉这种行为?

2 个答案:

答案 0 :(得分:1)

是的,我遇到过同样的问题,现在有了解决方案,您为什么它的图像占图像的-10%?因为状态栏显示在项目中,所以它会包含其高度,您需要通过以下方法隐藏它,您将获得准确的结果。

func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool) {
    UIApplication.shared.isStatusBarHidden = true
}

答案 1 :(得分:1)

状态栏正像Nirav Bhavsar所说的那样弄糟。

他的解决方案对我不起作用,但是添加以下扩展名可以使UIImagePickerControllerEditedImage正确裁剪图像。

extension UIImagePickerController {
    open override var childViewControllerForStatusBarHidden: UIViewController? {
        return nil
    }

    open override var prefersStatusBarHidden: Bool {
        return true
    }
}

此扩展程序将状态栏隐藏在UIImagePickerController中,看起来有些怪异,但结果很重要。

我从Swift 3.0 - how to hide status bar after calling UIImagePickerController?那里得到了