<span style="font-size:18px;">#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
/*
AutoLayout 由来
iOS之后出现的一种新的布局方式,用于取代原先的Autoresizing系统的布局方方式
AutoLayout是制定视图和父视图 或 视图和兄弟视图的关系布局
在AutoLayout当中,我们使用约束来描述视图与视图之间的关系
OC专门为开发者封装了一个类NSLayoutConstraint 来帮助开发者描述布局
*/
// [NSLayoutConstraint constraintWithItem:<#(nonnull id)#> attribute:<#(NSLayoutAttribute)#> relatedBy:<#(NSLayoutRelation)#> toItem:<#(nullable id)#> attribute:<#(NSLayoutAttribute)#> multiplier:<#(CGFloat)#> constant:<#(CGFloat)#>];
/*
参数的意义:
item:约束中两个视图对象
attribute:描述视图的对齐特征
rekatedBy:描述两个视图attribute关系
multiplier:缩放比例
constant:偏移量
视图1.属性 关系 视图2.属性*缩放比例 + 偏移量
视图1.左边 == 视图2.左边 * 1 + 0
[NSLayoutConstraint constraintWithItem:视图1 attribute:左边 relatedBy:等于 toItem:视图2 attribute:左边 multiplier:1 constant:0];
视图1.宽度 == 100
[NSLayoutConstraint constraintWithItem:视图1 attribute:宽度 relatedBy:等于 toItem:nil attribute:宽度 multiplier:1 constant:100];
*/
UIView *View1 = [UIView new];
View1.backgroundColor = [UIColor redColor];
//启动autolayout布局
View1.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:View1];
NSLayoutConstraint *constraint1 = [NSLayoutConstraint constraintWithItem:View1 attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterX multiplier:1 constant:10];
[self.view addConstraint:constraint1];
NSLayoutConstraint *constraint2 = [NSLayoutConstraint constraintWithItem:View1 attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterY multiplier:1 constant:0];
[self.view addConstraint:constraint2];
NSLayoutConstraint *constraint3 = [NSLayoutConstraint constraintWithItem:View1 attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeWidth multiplier:1 constant:100];
[self.view addConstraint:constraint3];
NSLayoutConstraint *constraint4 = [NSLayoutConstraint constraintWithItem:View1 attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeHeight multiplier:1 constant:100];
[self.view addConstraint:constraint4];
UIView *View2 = [UIView new];
View2.backgroundColor = [UIColor greenColor];
View2.translatesAutoresizingMaskIntoConstraints = NO; //启动布局
[self.view addSubview:View2];
NSLayoutConstraint *constraint5 = [NSLayoutConstraint constraintWithItem:View2 attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:View1 attribute:NSLayoutAttributeTrailing multiplier:1 constant:0];
[self.view addConstraint:constraint5];
NSLayoutConstraint *constraiont6 = [NSLayoutConstraint constraintWithItem:View2 attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:View1 attribute:NSLayoutAttributeBottom multiplier:1 constant:0];
[self.view addConstraint:constraiont6];
NSLayoutConstraint *constraint7 = [NSLayoutConstraint constraintWithItem:View2 attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:View1 attribute:NSLayoutAttributeWidth multiplier:0.5 constant:0];
[self.view addConstraint:constraint7];
NSLayoutConstraint *constraint8 = [NSLayoutConstraint constraintWithItem:View2 attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:View1 attribute:NSLayoutAttributeHeight multiplier:1 constant:0];
[self.view addConstraint:constraint8];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
</span>
IOS(UI)_AutoLayout(自动布局)
最新推荐文章于 2018-05-01 16:45:13 发布