//Masonry是一个轻量级的布局框架,拥有自己的描述语法,采用更优雅的链式语法封装自动布局,简洁明了并具有高可读性,而且同时支持
iOS 和 Max OS X。
https://github.com/SnapKit/Masonry
// exp1: 中心点与self.view相同,宽度为400*400
-(void)exp1{
UIView *view = [UIView new];
[view setBackgroundColor:[UIColor redColor]];
[self.view addSubview:view];
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.center.equalTo(self.view);
make.size.mas_equalTo(CGSizeMake(400,400));
}];
}
//exp2: 上下左右边距都为10
-(void)exp2{
UIView *view = [UIView new];
[view setBackgroundColor:[UIColor redColor]];
[self.view addSubview:view];
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.view).with.insets(UIEdgeInsetsMake(10, 10, 10, 10));
// make.left.equalTo(self.view).with.offset(10);
// make.right.equalTo(self.view).with.offset(-10);
// make.top.equalTo(self.view).with.offset(10);
// make.bottom.equalTo(self.view).with.offset(-10);
}];
}
//exp3 让两个高度为150的view垂直居中且等宽且等间隔排列 间隔为10
-(void)exp3{
UIView *view1 = [UIView new];
[view1 setBackgroundColor:[UIColor redColor]];
[self.view addSubview:view1];
UIView *view2 = [UIView new];
[view2 setBackgroundColor:[UIColor redColor]];
[self.view addSubview:view2];
[view1 mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(self.view.mas_centerY);
make.height.mas_equalTo(150);
make.width.mas_equalTo(view2.mas_width);
make.left.mas_equalTo(self.view.mas_left).with.offset(10);
make.right.mas_equalTo(view2.mas_left).offset(-10);
}];
[view2 mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(self.view.mas_centerY);
make.height.mas_equalTo(150);
make.width.mas_equalTo(view1.mas_width);
make.left.mas_equalTo(view1.mas_right).with.offset(10);
make.right.equalTo(self.view.mas_right).offset(-10);
}];
}
https://github.com/SnapKit/Masonry
// exp1: 中心点与self.view相同,宽度为400*400
-(void)exp1{
UIView *view = [UIView new];
[view setBackgroundColor:[UIColor redColor]];
[self.view addSubview:view];
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.center.equalTo(self.view);
make.size.mas_equalTo(CGSizeMake(400,400));
}];
}
//exp2: 上下左右边距都为10
-(void)exp2{
UIView *view = [UIView new];
[view setBackgroundColor:[UIColor redColor]];
[self.view addSubview:view];
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.view).with.insets(UIEdgeInsetsMake(10, 10, 10, 10));
// make.left.equalTo(self.view).with.offset(10);
// make.right.equalTo(self.view).with.offset(-10);
// make.top.equalTo(self.view).with.offset(10);
// make.bottom.equalTo(self.view).with.offset(-10);
}];
}
//exp3 让两个高度为150的view垂直居中且等宽且等间隔排列 间隔为10
-(void)exp3{
UIView *view1 = [UIView new];
[view1 setBackgroundColor:[UIColor redColor]];
[self.view addSubview:view1];
UIView *view2 = [UIView new];
[view2 setBackgroundColor:[UIColor redColor]];
[self.view addSubview:view2];
[view1 mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(self.view.mas_centerY);
make.height.mas_equalTo(150);
make.width.mas_equalTo(view2.mas_width);
make.left.mas_equalTo(self.view.mas_left).with.offset(10);
make.right.mas_equalTo(view2.mas_left).offset(-10);
}];
[view2 mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(self.view.mas_centerY);
make.height.mas_equalTo(150);
make.width.mas_equalTo(view1.mas_width);
make.left.mas_equalTo(view1.mas_right).with.offset(10);
make.right.equalTo(self.view.mas_right).offset(-10);
}];
}
-(void)createUI{
UIView *titleView = [UIView new]; titleView.backgroundColor = [UIColor redColor]; UIView *caredView = [UIView new]; [self.view addSubview:caredView]; UIView *brifeView = [UIView new]; [self.view addSubview:brifeView]; //self.view self.view.backgroundColor = [UIColor colorWithWhite:0.965 alpha:1.000]; //thrm UIImageView *plantThrm = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"defalutPlantReferenceIcon"]]; [self.view addSubview:plantThrm]; [plantThrm mas_makeConstraints:^(MASConstraintMaker *make) { make.left.and.top.equalTo(self.view).with.offset(10); }]; //title [self.view addSubview:titleView]; UIImageView *bgTitleView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"bg-plant-reference-title"]]; [titleView addSubview:bgTitleView]; [titleView mas_makeConstraints:^(MASConstraintMaker *make) { make.right.equalTo(self.view.mas_right); make.left.equalTo(plantThrm.mas_right).with.offset(20); make.centerY.equalTo(plantThrm.mas_centerY); }]; [bgTitleView mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(titleView); }]; UILabel *title = [[UILabel alloc]init]; title.textColor = [UIColor whiteColor]; title.font = [UIFont fontWithName:@"Heiti SC" size:26]; title.text = _reference.name; [titleView addSubview:title]; [title mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(titleView.mas_left).offset(10); make.width.equalTo(titleView.mas_width); make.centerY.equalTo(titleView.mas_centerY); }]; //植物养护 UILabel *caredTitle = [[UILabel alloc]init]; caredTitle.textColor = [UIColor colorWithRed:0.172 green:0.171 blue:0.219 alpha:1.000]; caredTitle.font = [UIFont fontWithName:@"Heiti SC" size:10]; caredTitle.text = @"植物养护"; [self.view addSubview:caredTitle]; [caredTitle mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(plantThrm.mas_bottom).with.offset(20); make.left.and.right.equalTo(self.view).with.offset(10); make.height.mas_equalTo(10); }]; //将图层的边框设置为圆脚 caredView.layer.cornerRadius = 5; caredView.layer.masksToBounds = YES; //给图层添加一个有色边框 caredView.layer.borderWidth = 1; caredView.layer.borderColor = [[UIColor colorWithWhite:0.521 alpha:1.000] CGColor]; caredView.backgroundColor = [UIColor whiteColor]; [caredView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(caredTitle.mas_bottom).with.offset(5); make.left.equalTo(self.view.mas_left).with.offset(10); make.right.equalTo(self.view.mas_right).with.offset(-10); make.height.equalTo(brifeView); }]; //植物简介 UILabel *brifeTitle = [[UILabel alloc]init]; brifeTitle.textColor = [UIColor colorWithRed:0.172 green:0.171 blue:0.219 alpha:1.000]; brifeTitle.font = [UIFont fontWithName:@"Heiti SC" size:10]; brifeTitle.text = @"植物简介"; [self.view addSubview:brifeTitle]; [brifeTitle mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(caredView.mas_bottom).with.offset(20); make.left.and.right.equalTo(self.view).with.offset(10); make.height.mas_equalTo(10); }]; //将图层的边框设置为圆脚 brifeView.layer.cornerRadius = 5; brifeView.layer.masksToBounds = YES; //给图层添加一个有色边框 brifeView.layer.borderWidth = 1; brifeView.layer.borderColor = [[UIColor colorWithWhite:0.521 alpha:1.000] CGColor]; brifeView.backgroundColor = [UIColor whiteColor]; [brifeView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(brifeTitle.mas_bottom).with.offset(5); make.left.equalTo(self.view.mas_left).with.offset(10); make.right.equalTo(self.view.mas_right).with.offset(-10); make.bottom.equalTo(self.view.mas_bottom).with.offset(-10); make.height.equalTo(caredView); }];}
本文介绍Masonry布局框架的使用方法,通过多个实例演示如何实现不同布局需求,如居中定位、边距设置及多视图等宽等间距排列。
3046

被折叠的 条评论
为什么被折叠?



