如何对iOS的Mode属性UIImageView进行设置

视图的内容模式属性指示如何布置其内容。 在“界面生成器”中,可以在“属性”检查器中选择各种模式。

让我们使用两个图像视图来查看各种模式如何工作。

缩放以填充

图像的高度和宽度被拉伸以匹配UIImageView的大小。

纵横比拟合

图像的最长边(高度或宽度)被拉伸以匹配视图。 这使图像尽可能大,同时仍显示整个图像且高度或宽度不失真。 (我将UIImageView背景设置为蓝色,以便其大小清晰可见。)

外观填充

图像的最短边(高度或宽度)被拉伸以匹配视图。 像“宽高比”一样,图像的比例不会偏离其原始宽高比。

重画

重绘仅适用于需要自行缩放和调整大小的自定义视图。 我们没有使用自定义视图,因此我们不应该使用重绘。 请注意,这里的UIImageView只是给我们提供了与“缩放以填充”相同的结果,但是它在后台进行了更多工作。

中央

图像在视图中居中,但图像的长度和宽度未拉伸。

最佳

图像的顶部边缘在视图顶部水平居中,并且图像的长度和宽度未拉伸。

底部

图像的底部边缘在视图底部水平居中,并且图像的长度和宽度未拉伸。

剩下

图像的左边缘在视图的左侧垂直居中,并且图像的长度和宽度未拉伸。

图像的右边缘在视图的右侧垂直居中,并且图像的长度和宽度未拉伸。

左上方

图像的左上角位于视图的左上角。 图像的长度和宽度未拉伸。

右上

图像的右上角位于视图的右上角。 图像的长度和宽度未拉伸。

左下方

图像的左下角位于视图的左下角。 图像的长度和宽度未拉伸。

右下

图像的右下角位于视图的右下角。 图像的长度和宽度未拉伸。

笔记

如果内容(在我们的情况下为图像)与视图的大小相同(在我们的情况下为UIImageView),则更改内容模式不会有明显的区别。

请参阅此问题,以获取有关UIImageView以外的视图的内容模式的讨论。 在Swift中,要设置以编程方式设置内容模式,请执行以下操作:

  imageView.contentMode = UIViewContentMode.scaleToFill 
imageView.contentMode = UIViewContentMode.scaleAspectFit
imageView.contentMode = UIViewContentMode.scaleAspectFill
imageView.contentMode = UIViewContentMode.redraw
imageView.contentMode = UIViewContentMode.center
imageView.contentMode = UIViewContentMode.top
imageView.contentMode = UIViewContentMode.bottom
imageView.contentMode = UIViewContentMode.left
imageView.contentMode = UIViewContentMode.right
imageView.contentMode = UIViewContentMode.topLeft
imageView.contentMode = UIViewContentMode.topRight
imageView.contentMode = UIViewContentMode.bottomLeft
imageView.contentMode = UIViewContentMode.bottomRight