ios autoResizing

最近在使用storyBoard构建界面部分,碰到autoResizing做界面适配的,这边简单介绍一下,要注意的是autoResizing是一个相对于父控件布局。

autoResizing介绍

需要将UIView的autoresizeSubviews设为YES,这个属性默认是YES的;那么在其中的子View就会根据其自身的autoresizingMask属性来自动其与superView的位置与大小。
而autoresizingMask的值如下:

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
};

在xcode中会看到

ios autoResizing_第1张图片
autoresizing调整

需要注意的是 与margin相关的四个值在虚线的时候才有用,width和height在实线的时候才有用

UIViewAutoresizingNone: view的frame不会随superview的改变而改变
UIViewAutoresizingFlexibleLeftMargin: 自动调整view与superview左边的距离保证右边距离不变
UIViewAutoresizingFlexibleWidth: 自动调整view的宽,保证与superView的左右边距不变
UIViewAutoresizingFlexibleRightMargin: 自动调整view与superview右边的距离保证左边距不变
UIViewAutoresizingFlexibleTopMargin: 自动调整view与superview顶部的距离保证底部距离不变
UIViewAutoresizingFlexibleHeight: 自动调整view的高,保证与superView的顶部和底部距离不变
UIViewAutoresizingFlexibleBottomMargin: 自动调整view与superview底部部的距离保证顶部距离不变

未完待续,ios的自动布局还有autoLayout和sizeClass

参考资料

ios 自动布局之autoResizing

你可能感兴趣的:(ios autoResizing)