UIImageView的contentMode的定义是这样子的:
public enum UIViewContentMode :Int {
case ScaleToFill//整体填充
case ScaleAspectFit //按照宽高比缩放(宽和高的大的值填充),空出来的地方透明
case ScaleAspectFill //按照宽高比缩放(宽和高的小的值填充),多出来的地方切割
case Redraw
case Center
case Top
case Bottom
case Left
case Right
case TopLeft
case TopRight
case BottomLeft
case BottomRight
}
ScaleToFill:定义一个UIImageView 显示结果是这样子的
变形整个填充
再看看UIButton的imageView对于小图片就会这样,大图片如上(我把imageView的边框显示出来了)
所以对于小图片的UIButton设置contentMode是无效的
对于其他的显示模式也是一样的只有图片大于UIButton的大小的时候image的contentMode才有效果
对于以上情况可以用可以修改UIControl中的contentHorizontalAlignment和contentVerticalAlignment属性让imageView占据整个button大小来解决,这两个熟悉是枚举都有fill属性