2018-10-26 UIView的contentMode说明

每次都得找,记不清楚,还是直接转载过来了。

UIView的contentMode使用小结:转自CSDN

2016年04月07日 15:36:35 Longshihua 阅读数:9637

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/longshihua/article/details/51086303

Content Modes

每一个视图都有一个 contentMode 来控制当视图的几何形状发生变化的时候如何复用它的内容,当view第一次被显示出来,它会将自己的内容渲染被位图持有。在那之后,改变view的几何结构将并不能导致位图被重新创建(绘制)。但是属性值ContentMode决定了bitmap是否缩放、位置在哪儿(固定在左边、右边、上面、下面、居中)。默认情况下,contentMode的值是UIViewContentModeScaleToFill。

contentMode什么时候起作用

1)视图frame或bounds的高宽发生变化

2)赋给 view的transform属性的值带有scale

有以下常量可以设置:

typedefNS_ENUM(NSInteger,UIViewContentMode) {

UIViewContentModeScaleToFill,

UIViewContentModeScaleAspectFit,// contents scaled to fit with fixed aspect. remainder is transparent

UIViewContentModeScaleAspectFill,// contents scaled to fill with fixed aspect. some portion of content may be clipped.

UIViewContentModeRedraw,// redraw on bounds change (calls -setNeedsDisplay)

UIViewContentModeCenter,// contents remain same size. positioned adjusted。居中显示

UIViewContentModeTop,

UIViewContentModeBottom,

UIViewContentModeLeft,

UIViewContentModeRight,

UIViewContentModeTopLeft,

UIViewContentModeTopRight,

UIViewContentModeBottomLeft,

UIViewContentModeBottomRight,

};

注意:

       UIViewContentModeScaleToFill :缩放图片,使图片充满容器,属性会导致图片变形。

       UIViewContentModeScaleAspectFit:会保证图片比例不变,而且全部显示在ImageView中,这意味着ImageView会有部分空白,不会填充整个区域。

       UIViewContentModeScaleAspectFill:也会证图片比例不变,但是是填充整个ImageView的,可能只有部分图片显示出来。

      Top,Left,Right等等就是将突破放在View中的位置进行调整。

   内容模式有利于重复使用view的内容,如果你想自定义视图并在缩放和计算操作期间重绘它们,可以使用UIViewContentModeRedraw值,设置该值将使系统调用drawRect:方法来响应视图的几何结构的改变,一般情况下,应该尽量避免使用该值。

官方给了一组图片如下:

                                                             Figure 1-2  Content mode comparisons


2018-10-26 UIView的contentMode说明_第1张图片

你可能感兴趣的:(2018-10-26 UIView的contentMode说明)