![](https://img.haomeiwen.com/i13243187/479058ca163af2ef.png)
上侧实线:表示【子控件】距离【父控件】上侧间距固定;
下侧实线:表示【子控件】距离【父控件】下侧间距固定;
左侧实线:表示【子控件】距离【父控件】左侧间距固定;
右侧实线:表示【子控件】距离【父控件】右侧间距固定;
内部水平实线:表示【子控件】随【父控件】宽度的变化
而变化;
内部竖直实线:表示【子控件】随【父控件】高度的变化
而变化;
![](https://img.haomeiwen.com/i13243187/6eeded24b522c2f0.png)
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
};
//要求:子控件占据父控件左上角,并且高度固定;
UIView *redView = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 200, 30)];
redView.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleWidth;
//“左上角”即【子控件】距【父控件】左侧、顶部间距固定,那就意味着【只有】右侧间距、下侧间距是灵活的(flexible);高度固定意味着宽度灵活;
总结:
(1)代码对控件的约束与xib方式对控件的约束是“相反的”;
(2)AutoResizing布局的局限性:仅能解决父子控件间的相对布局问题,不能解决兄弟控件间的相对布局问题;使用前提:关闭AutoLayout适配方式。
(3)AutoLayout:可以解决任意两个控件的相对布局问题。
![](https://img.haomeiwen.com/i13243187/152f661b5f27ff82.png)
![](https://img.haomeiwen.com/i13243187/19bd32cbe28a3d20.png)
![](https://img.haomeiwen.com/i13243187/98892f565c9e9f1d.png)
网友评论