Objective-C语言——AutoLayout自动布局
来源:互联网 发布:linux查看文件夹权限 编辑:程序博客网 时间:2024/06/05 11:40
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
/*
AutoLayout 由来
iOS6之后出现的一种新的布局方式,用于取代原先的 Autoresizing系统的布局方式
AutoLayer 是指定视图和父视图或 视图和兄弟视图的关系来布局
在 AutoLayer当中,我们使用约束来描述视图与视图之间的关系
OC 专门为开发者封装了一个类 NSLayoutConstraint来帮助开发者描述布局
*/
// [NSLayoutConstraint constraintWithItem:<#(nonnull id)#> attribute:<#(NSLayoutAttribute)#> relatedBy:<#(NSLayoutRelation)#> toItem:<#(nullable id)#> attribute:<#(NSLayoutAttribute)#> multiplier:<#(CGFloat)#> constant:<#(CGFloat)#>];
/*
参数的意义:
Item:约束中两个视图对象
attribute:描述视图的对齐特征
relatedBy:描述两个视图 attribute关系
multiplier:缩放比例
constant:偏移量
视图1(Item).属性(attribute) 关系(relatedBy)视图2(Item).属性(attribute)*缩放比例(multiplier) + 偏移量(constant)
视图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 = [UIViewnew];
view1.backgroundColor = [UIColorpurpleColor];
//启动 autoLayer布局
view1.translatesAutoresizingMaskIntoConstraints =NO;
[self.viewaddSubview:view1];
// X轴
NSLayoutConstraint *constraintX = [NSLayoutConstraintconstraintWithItem:view1 attribute:NSLayoutAttributeCenterXrelatedBy:NSLayoutRelationEqualtoItem:self.viewattribute:NSLayoutAttributeCenterXmultiplier:1constant:0];
[self.viewaddConstraint:constraintX];
// Y轴
NSLayoutConstraint *constraintY = [NSLayoutConstraintconstraintWithItem:view1 attribute:NSLayoutAttributeCenterYrelatedBy:NSLayoutRelationEqualtoItem:self.viewattribute:NSLayoutAttributeCenterYmultiplier:1constant:0];
[self.viewaddConstraint:constraintY];
// 宽度
NSLayoutConstraint *constraintWidth = [NSLayoutConstraintconstraintWithItem:view1 attribute:NSLayoutAttributeWidthrelatedBy:NSLayoutRelationEqualtoItem:nilattribute:NSLayoutAttributeWidthmultiplier:1constant:100];
[self.viewaddConstraint:constraintWidth];
//高度
NSLayoutConstraint *constraintHeight = [NSLayoutConstraintconstraintWithItem:view1 attribute:NSLayoutAttributeHeightrelatedBy:NSLayoutRelationEqualtoItem:nilattribute:NSLayoutAttributeHeightmultiplier:1constant:100];
[self.viewaddConstraint:constraintHeight];
UIView *view2 = [[UIViewalloc] init];
view2.backgroundColor = [UIColoryellowColor];
//布局启动
view2.translatesAutoresizingMaskIntoConstraints =NO;
[self.viewaddSubview:view2];
NSLayoutConstraint *constraintX2 = [NSLayoutConstraintconstraintWithItem:view2 attribute:NSLayoutAttributeLeadingrelatedBy:NSLayoutRelationEqualtoItem:view1 attribute:NSLayoutAttributeTrailingmultiplier:1constant:0];
[self.viewaddConstraint:constraintX2];
NSLayoutConstraint *constraintY2 = [NSLayoutConstraintconstraintWithItem:view2 attribute:NSLayoutAttributeToprelatedBy:NSLayoutRelationEqualtoItem:view1 attribute:NSLayoutAttributeBottommultiplier:1constant:0];
[self.viewaddConstraint:constraintY2];
NSLayoutConstraint *constraintWidth2 = [NSLayoutConstraintconstraintWithItem:view2 attribute:NSLayoutAttributeWidthrelatedBy:NSLayoutRelationEqualtoItem:view1 attribute:NSLayoutAttributeWidthmultiplier:0.5constant:0];
[self.viewaddConstraint:constraintWidth2];
NSLayoutConstraint *constraintHeight2 = [NSLayoutConstraintconstraintWithItem:view2 attribute:NSLayoutAttributeHeightrelatedBy:NSLayoutRelationEqualtoItem:view1 attribute:NSLayoutAttributeHeightmultiplier:1constant:0];
[self.viewaddConstraint:constraintHeight2];
}
- (void)didReceiveMemoryWarning {
[superdidReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
- Objective-C语言——AutoLayout自动布局
- iosiOS中的自动布局——autoLayout
- Objective—C语言
- autolayout自动布局详解
- AutoLayout(自动布局)
- AutoLayout 自动布局
- ios Autolayout自动布局
- autoLayout 自动布局
- AutoLayout自动布局
- Autolayout(自动布局)
- 适配 - autolayout自动布局
- autoLayout-自动布局
- iOS AutoLayout 自动布局
- AutoLayout (自动布局)
- Autolayout自动布局1
- Autolayout自动布局2
- Autolayout自动布局3
- AutoLayout 自动布局
- tableView插入Rows,删除Rows
- #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
- fastdfs中的数据迁移
- android ANR产生原因和解决办法
- 如何确保项目开发敏捷和安全两者兼得呢?
- Objective-C语言——AutoLayout自动布局
- matlab和C/C++混合编程--调用opencv
- 恢复oracle数据到以前的某个时间点
- iOS录音功能开发
- 2016iOS苹果开发者账号申请流程;
- linux(ubuntu)安装mongodb的命令
- Android 四种启动模式
- activity透明
- matlab连接sql数据库