美文网首页
IOS autoresizingMask详解

IOS autoresizingMask详解

作者: 某某香肠 | 来源:发表于2018-07-22 23:28 被阅读0次

    由于公司里的项目用的都是绝对布局,而不是相对布局,其布局仅用frame+autoresizingMask构成,因此特地学习一下autoresizingMask的使用方法。

    概念

    autoresizingMask是UIView持有的一个UIViewAutoresizing类型,该类型的取值决定视图随其父视图的变化而产生怎样的变化。

    UIViewAutoresizing枚举取值

    UIViewAutoresizing主要有6种状态,如下表所示:

    UIViewAutoresizing类型 视图调整情况
    UIViewAutoresizingNone(默认) 不会随父视图的改变而改变
    UIViewAutoresizingFlexibleLeftMargin 自动调整view与父视图左边距,以保证右边距不变
    UIViewAutoresizingFlexibleWidth 自动调整view的宽度,保证左边距和右边距不变
    UIViewAutoresizingFlexibleRightMargin 自动调整view与父视图右边距,以保证左边距不变
    UIViewAutoresizingFlexibleTopMargin 自动调整view与父视图上边距,以保证下边距不变
    UIViewAutoresizingFlexibleHeight 自动调整view的高度,以保证上边距和下边距不变
    UIViewAutoresizingFlexibleBottomMargin 自动调整view与父视图的下边距,以保证上边距不变

    从上表我们可以总结出,枚举中flexible修饰的单词在父视图发生变化的时候是可以灵活改变的,而其它属性却是固定不变的,需要注意的是,这些属性亦可以复合使用,已达到不同的效果,其中最常用的是

    UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight

    它代表视图的所有边距都与父视图保持不变

    同一轴上多个选项设置的情形

    当同一个轴线有多个选项进行设置时,分为以下几种情况(仅以横向轴作为例子):

    • UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin
      在父视图改变的过程中,保持宽度相等,左右边距的比例也保持相等
    • UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleRightMargin
      在父视图改变的过程中,左边距保持相等,宽度与俯视图宽度的比例保持相等
    • UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleLeftMargin
      在父视图改变的过程中,右边距保持相等,宽度与俯视图宽度的比例保持相等
    • UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleRightMargin|UIViewAutoresizingFlexibleLeftMargin
      在父视图改变的过程中,宽度与父视图的宽度保持相等,左右边距的比例也保持相等

    相关文章

      网友评论

          本文标题:IOS autoresizingMask详解

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