美文网首页iOS Developer
浅谈UIView的contentMode属性

浅谈UIView的contentMode属性

作者: 小巷深深 | 来源:发表于2016-10-13 18:31 被阅读368次

Content Modes###

每一个view都有一个contentMode属性。这个属性用来控制view如何重用界面的内容以响应界面的几何变化,或者是将整个内容完全重用。
当一个view第一次被展示的时候,它会将自己的内容渲染为一张位图。之后,改变view的几何尺寸不会总是导致这个位图重绘。相反的,contentMode属性决定了这个位图会如何显示,是进行缩放以适应新的尺寸,或者只是简单的与某一个边缘或者顶点对齐。

当做以下操作都会使得contentMode属性生效:

  • 修改view的frame或者bounds属性的width或者height
  • 给view的transform赋一个具有缩放动作的值

系统提供了如下的属性

typedef NS_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,
};

contentMode的默认属性是UIViewContentModeScaleToFill,这个属性使得contents进行缩放以适应新的frame。
下图展示了不同的属性所产生的效果:

scale_aspect.jpg

由图中看到UIViewContentModeScaleToFill属性会导致形变。而
UIViewContentModeScaleAspectFill导致内容不能完全展示.

content modes是界面重用内容的好方法,当然你也可以设置UIViewContentModeRedraw,使得你的自定义界面在尺寸变化时强制重绘。当设置contentModel属性为UIViewContentModeRedraw后,在view尺寸变化时,系统会强制调用drawRect:方法。一般来说,你应该尽可能的避免使用这个值,并且确保没有给系统标准view设定这个值。

参考###

View and Window Architecture

相关文章

  • 浅谈UIView的contentMode属性

    Content Modes### 每一个view都有一个contentMode属性。这个属性用来控制view如何重...

  • 关于UIView的contentMode属性

    contentMode属性 每个UIView都有一个contentMode属性控制视图如何回收利用其内容以响应视图...

  • UIView contentMode属性详解

    1、官方文档说明 contentModeA flag used to determine how a view l...

  • iOS UIView contentMode

    Content Modes contentMode是UIView的属性,这个属性的值决定了,当视图的几何形状变化时...

  • UIView的contentMode属性总结

    UIViewContentMode 枚举值如下: 重点介绍前3个填充模式: UIViewContentModeSc...

  • iOS【UIView】contentMode

    contentMode是UIView的属性(如下图),这个属性的值决定了,当视图的几何形状变化时如何复用它的内容。...

  • UIView中contentMode属性的基本功能

    UIView的属性contentMode用于当视图的bounds(边界)发生变化时来确定视图如何布局,也就是说此属...

  • 测试

    contentMode属性 contentMode属性 带有scale单词的:图片有可能会拉伸UIViewCont...

  • 相机

    UIImageView对象会根据其contentMode属性显示一张指定的图片。contentMode属性的作用是...

  • iPhone/iOS UIView开发总结

    一.主要参数1.contentMode:定义UIView的填充模式,如:UIViewContentModeLeft...

网友评论

    本文标题:浅谈UIView的contentMode属性

    本文链接:https://www.haomeiwen.com/subject/ycawyttx.html