UIImageView使用其contentMode属性和图像本身尺寸来确定如何显示图像。最好指定其尺寸与UIImageView尺寸完全匹配的图像,但UIImageView可以缩放图像以适应所有或部分可用空间。如果UIImageView的尺寸本身发生变化,则会根据需要自动缩放图像。
override func viewDidLoad() {
super.viewDidLoad()
let imgView = UIImageView(frame: CGRect(x: 100, y: 100, width: 100, height: 100))
imgView.backgroundColor = UIColor.red
imgView.layer.borderWidth = 1
imgView.layer.borderColor = UIColor.red.cgColor
imgView.image = UIImage(named: "test")
imgView.contentMode = .scaleToFill
self.view.addSubview(imgView)
}
public enum UIViewContentMode : Int {
case scaleToFill // 缩放图片填充容器,图片和容器比例不一致会导致图片变形
case scaleAspectFit // 按比例调整图片尺寸适配容器,在容器中显示图片整体,多余区域为透明空白, 图片不会变形
case scaleAspectFill // 按比例调整图片尺寸适配填充到整个容器,超出容器部分会被裁减
case redraw // bounds 改变时调用-setNeedsDisplay, 重绘视图
case center // 图片尺寸不变,与容器中心对齐
case top
case bottom
case left
case right
case topLeft
case topRight
case bottomLeft
case bottomRight
}
效果图