UIImagePickerController 裁剪图像高于用户选择
Posted
技术标签:
【中文标题】UIImagePickerController 裁剪图像高于用户选择【英文标题】:UIImagePickerController crops images higher than user chooses 【发布时间】:2018-01-05 19:18:37 【问题描述】:编辑:这是作为 UIImagePicker allowsEditing stuck in center 的完全相同的副本关闭的,但这似乎是完全不同的问题。这个问题与用户无法移动裁剪框有关(额外的怪异只发生在相机上)。这个问题是关于图像选择器将错误的值返回到我的代码中。
我的UIImagePickerController
上有allowsEditing = true
,因此可以裁剪图像:
info[UIImagePickerControllerEditedImage]
中出现的图像通常看起来正确并被裁剪,但裁剪窗口好像向上滑动了约 10%:
您可以在上面看到裁剪窗口穿过叶子的中脉,但在选择器的输出中,中脉是完全可见的。
有熟悉这种行为的人吗?
【问题讨论】:
@Fogmeister :我看到您将此标记为与 ***.com/questions/12630155/… 完全相同,但这似乎是一个完全不同的问题。我错过了连接吗?还是说这也是 ios 的 bug 造成的? 【参考方案1】:是的,我遇到了同样的问题,现在有了解决方案,你为什么它的图像从图像中取-10%?因为我们的状态栏显示在我们的项目中,它会包含它的高度,你需要通过下面的方法隐藏它,你会得到准确的结果。
func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool)
UIApplication.shared.isStatusBarHidden = true
【讨论】:
【参考方案2】:正如 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?得到它
【讨论】:
以上是关于UIImagePickerController 裁剪图像高于用户选择的主要内容,如果未能解决你的问题,请参考以下文章
UIImagePickerController、自定义 UIButton 和 AutoLayout
OCMock 模拟 UIImagePickerController