这里是我的问题的an image。我的问题是,UIImageView的右侧有一个很小的空白空间,该空间被限制在视图控制器的视图中。由于设置了背景,因此为绿色,并且在设备上更为突出。这很奇怪,因为考虑到图像是在手机上拍摄的,并且我正在使用scaleAspectFit,因此图像应该适合整个屏幕。
let imageView: UIImageView = {
let imageView = UIImageView()
imageView.translatesAutoresizingMaskIntoConstraints = false
imageView.isUserInteractionEnabled = true
imageView.contentMode = .scaleAspectFit
imageView.backgroundColor = .green
imageView.clipsToBounds = true
return imageView
}()
这里是约束的代码:
func setupImageView() {
self.view.addSubview(imageView)
let imageViewConstraints = [
imageView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor),
imageView.topAnchor.constraint(equalTo: self.view.topAnchor),
imageView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor),
imageView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor)
]
NSLayoutConstraint.activate(imageViewConstraints)
}
我基本上是使用self.imageView.image
设置图像,最后在右侧留有空白,只有在使用明亮的颜色作为imageView背景时,该空白才值得注意。不知道这是否是一个错误。我不使用填充的唯一原因是我想在显示整个图像时保持外观。
contentMode scaleAspectFit
将保持图像的比例,显示图像的全部内容。由于您的照片比例与屏幕相同,因此,如果imageView高度小于屏幕,则图像显示宽度也将小于屏幕,这会导致显示背景green
颜色。为了确保imageView适合屏幕,您可以在其上添加边框:
imageView.layer.borderColor = UIColor.red.cgColor
imageView.layer.borderWidth = 1.0