关于UIView的autoresizingMask属性

在iphone5-iphone5s时代,苹果的尺寸有了新的变化,这时就要考虑到了适配问题。autoresizingMask派上了用场。

在UIView的.h里面,很容易找到下面的枚举:

typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
    UIViewAutoresizingNone                 = 0,
    UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,
    UIViewAutoresizingFlexibleWidth        = 1 << 1,
    UIViewAutoresizingFlexibleRightMargin  = 1 << 2,
    UIViewAutoresizingFlexibleTopMargin    = 1 << 3,
    UIViewAutoresizingFlexibleHeight       = 1 << 4,
    UIViewAutoresizingFlexibleBottomMargin = 1 << 5
};
那他们都是什么意思呢?

    typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
        UIViewAutoresizingNone                 = 0,         //不做改变
        UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,    //保持和父视图的右边间距不变
        UIViewAutoresizingFlexibleWidth        = 1 << 1,    //保持自己的左右距离(即宽度)和父视图之间不变
        UIViewAutoresizingFlexibleRightMargin  = 1 << 2,    //保持和父视图的左边间距不变
        UIViewAutoresizingFlexibleTopMargin    = 1 << 3,    //保持和父视图的底部间距不变
        UIViewAutoresizingFlexibleHeight       = 1 << 4,    //保持自己的上下高度(即高度)和父视图之间不变
        UIViewAutoresizingFlexibleBottomMargin = 1 << 5     //保持和父视图的顶部间距不变,底部做调整
    };
细心的读者可能已经注意到了,这是一个可以通过“按位或操作符”组合的枚举,即意味着他可以按照需求进行不同的组合;

eg:

view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
表示view的上下左右和父视图之间保持不变。


另外,如果想使用“停靠模式”,请打开父视图的autoresizesSubviews = YES;(虽然他默认是YES),然后设置子视图的autoresizingMask。


更多的组合,根据自己的需求,进行不同的组合。


才疏学浅,如果我有错误的地方,请告知,我将及时修改,以免误导别人。共同进步。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值