我有一个应用程序,在那里我拍照,然后继续在另一个UIViewController中呈现此图像。但是,所得的UIImage似乎超出了我设置UIImageView的范围。内容模式为“纵横填满”
拍照后,调用以下方法: CaptureImageViewController:
func presentCapturedImage(image: CGImage, observationObj: VNRectangleObservation) -> Void {
print("HERE!")
let prevVC = storyboard?.instantiateViewController(withIdentifier: "prevcrop") as! PreviewCropViewController
prevVC.cgImg = image
prevVC.uiImageEXIF = uiImageEXIF
prevVC.ObserObj = observationObj
DispatchQueue.main.async {
self.present(prevVC, animated: true, completion: nil)
}
}
PresentingViewController在其viewDidLoad()中调用以下内容:
@IBOutlet weak var imgPreViewOutlet: UIImageView!
guard
let img = self.cgImg,
let imgEXIF = self.uiImageEXIF else{return}
let uiImage = UIImage.init(cgImage: img)
self.imgPreViewOutlet.image = uiImage
我用来显示图像的UIViewController:
具有UIButton的下部UIView的约束:
UIImageView的约束:
结果视图-您可以看到图像几乎覆盖了所有裁剪按钮:
答案 0 :(得分:3)
在UIImageViews中使用aspectFill
时要当心。如果clipsToBounds
不正确,则图像可能会延伸到框架之外。
这种情况发生在图像缩放时,以完全填满图像视图框架。如果图像和框架的比例不完全相同,则图像将延伸到框架之外。