升级到iOS11后,使用UIImagePickerController拍照或选择相册图片,并设置
let vc = UIImagePickerController()
vc.allowsEditing = true
进行编辑图片时,发现图片无论怎么拖,都无法对准到编辑框,甚至选出来的图片
let image = info[UIImagePickerControllerEditedImage] as? UIImage
会带有黑边,莫名被剪掉了一些内容...
解决办法是让其导航栏透明:
extension ViewController: UINavigationControllerDelegate {
func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
// iOS11需要让导航栏透明,否则图片对不准选择框,选出的图片也会有黑边
if navigationController is UIImagePickerController {
navigationController.navigationBar.isTranslucent = true
}
}
}
当App的导航栏被默认设置了全局背景图时,就会失去透明,比如
let bar = UINavigationBar.appearance()
bar.setBackgroundImage(image, for: .default)
这种情况下,调起UIImagePickerController时,它的导航栏就是不透明的,需要处理一下。
网友评论