zoukankan      html  css  js  c++  java
  • 关于UIView 的autoresizingMask属性,即UIViewAutoresizing

    enum {
       UIViewAutoresizingNone                 = 0,
       UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,
       UIViewAutoresizingFlexibleWidth        = 1 << 1,
       UIViewAutoresizingFlexibleRightMargin  = 1 << 2,
       UIViewAutoresizingFlexibleTopMargin    = 1 << 3,
       UIViewAutoresizingFlexibleHeight       = 1 << 4,
       UIViewAutoresizingFlexibleBottomMargin = 1 << 5
    };
    typedef NSUInteger UIViewAutoresizing;
    这六个值与xib文件里面的图形显示怎么对应起来,这个说起来很坑爹的。
    代码设置与xib图形设置很不一至。

    根据UIView的API文档说明,autoresizingMask的默认值是UIViewAutoresizingNone
    那么再xib文件里面对应的图形是:
    关于UIView <wbr>的autoresizingMask属性,即UIViewAutoresizing

    即四周选中,中间2个没有选中。这个真是有点变态啊,我刚开始以为是全都不选呢。

    再举个例子:
    我想要view一直与左下角对齐,高度自由伸缩,xib设置如图:
    关于UIView <wbr>的autoresizingMask属性,即UIViewAutoresizing

    那么代码应该怎么写呢?一定要注意看清每个单词哦!!!,如下:
    subView.autoresizingMask =
        UIViewAutoresizingFlexibleTopMargin |
        UIViewAutoresizingFlexibleRightMargin |
        UIViewAutoresizingFlexibleHeight;


    下面的文章参考自:http://www.cnblogs.com/kiao295338444/articles/2308903.html

    在 UIView 中有一个autoresizingMask的属性,它对应的是一个枚举的值(如下),属性的意思就是自动调整子控件与父控件中间的位置,宽高。

    enum {
       UIViewAutoresizingNone                 = 0,
       UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,
       UIViewAutoresizingFlexibleWidth        = 1 << 1,
       UIViewAutoresizingFlexibleRightMargin  = 1 << 2,
       UIViewAutoresizingFlexibleTopMargin    = 1 << 3,
       UIViewAutoresizingFlexibleHeight       = 1 << 4,
       UIViewAutoresizingFlexibleBottomMargin = 1 << 5
    };
    typedef NSUInteger UIViewAutoresizing;

    分别解释以上意思。

    UIViewAutoresizingNone就是不自动调整。

    UIViewAutoresizingFlexibleLeftMargin就是自动调整与superView左边的距离,也就是说,与superView右边的距离不变。

    UIViewAutoresizingFlexibleRightMargin就是自动调整与superView的右边距离,也就是说,与superView左边的距离不变。

    UIViewAutoresizingFlexibleTopMargin

    UIViewAutoresizingFlexibleBottomMargin

    UIViewAutoresizingFlexibleWidth

    UIViewAutoresizingFlexibleHeight

    以上就不多解释了,参照上面的。

    也可以多个枚举同时设置。如下:

    subView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin  |UIViewAutoresizingFlexibleRightMargin;

    如果有多个,就用“|”关联。

    还有一个属性就是autoresizesSubviews,此属性的意思就是,是否可以让其subviews自动进行调整,默认状态是YES,就是允许,如果设置成NO,那么subView的autoresizingMask属性失效。

     
  • 相关阅读:
    P4396 [AHOI2013]作业
    NOIP2018普及T2暨洛谷P5016 龙虎斗
    NOIP2018普及T1暨洛谷P5015 标题统计 题解
    【交题大桥】团队信息存档
    markdown浅谈
    洛谷P1690 贪婪的Copy 题解
    洛谷P4994 终于结束的起点 题解
    洛谷P4995 跳跳!题解
    这么多都变了,洛谷4还会远吗?
    洛谷P1396 营救 题解
  • 原文地址:https://www.cnblogs.com/qiutangfengmian/p/5570285.html
Copyright © 2011-2022 走看看