UIImageView对图像大小的渲染存在问题。使用“等比例缩放”选项时,如果UIImageView是正方形,则图像在正确的宽高比下显示,未覆盖区域将透明显示。
//Image is Square & Correct Size
var imageView = UIImageView(frame: CGRectMake(0, 50, 320, 320))
imageView.clipsToBounds = true
imageView.contentMode = UIViewContentMode.ScaleAspectFit
//Image is Rectangle & Incorrect Size
var imageView = UIImageView(frame: CGRectMake(0, 50, 320, 450))
imageView.clipsToBounds = true
imageView.contentMode = UIViewContentMode.ScaleAspectFit
UIImageView需要触及屏幕的边缘,并在屏幕顶部和底部留有透明空间,图像内部需要保持其原始比例而不是拉伸变高。我附加了两张图片,展示了UIImageView内部图像的渲染情况。