ios8 使用storyboard 进行自动布局
来源:互联网 发布:php怎么返回json数据 编辑:程序博客网 时间:2024/06/17 04:13
e
常见符号
H:
水平布局(默认)
V:
垂直布局
|
superView的边界,水平布局模式下,放在左边是左边界,放在右边是右边界;处置布局模式下,则相应的为上边界和下边界
-
标准间隔距离
-N-
长度为N像素点的间隔距离
[view]
被约束的view
==,>=,<=
用于限制view的长宽
@N
约束生效的优先级,最高是1000,等级高的优先考虑
例如:
[NSLayoutConstraint constraintsWithVisualFormat:@"|-50-[redView(==100)]-30-[blueView(==100)]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(redView,blueView)];
其中,@"|-50-[redView(==100)]-30-[blueView(==100)]"的意思理解为:redView宽度为100,距离superView的左边界为50,与blueView的间距始终保持30,blueView的宽度为100
- - (void)viewDidLoad {
- [super viewDidLoad];
- self.view.backgroundColor = [UIColor whiteColor];
- // 1 创建三个视图 红/绿/蓝/黄/橙色视图
- // 红
- UIView *redView = [self alive];
- redView.backgroundColor = [UIColor redColor];
- [self.view addSubview:redView];
- // 绿
- UIView *greenView = [self alive];
- greenView.backgroundColor = [UIColor greenColor];
- [self.view addSubview:greenView];
- // 蓝
- UIView *blueView = [self alive];
- blueView.backgroundColor = [UIColor blueColor];
- [self.view addSubview:blueView];
- // 黄
- UIView *yellowView = [self alive];
- yellowView.backgroundColor = [UIColor yellowColor];
- [self.view addSubview:yellowView];
- // 橙
- UIView *orangeView = [self alive];
- orangeView.backgroundColor = [UIColor orangeColor];
- [self.view addSubview:orangeView];
- [self.view addConstraints:[self portraitConstraints:redView :greenView :blueView yellowView:yellowView orangeView:orangeView]];
- }
- // 这样写完全是为了代码的方便使用,创建对象的同时初始化控件
- - (UIView *)alive
- {
- UIView *newView = [UIView new];
- newView.translatesAutoresizingMaskIntoConstraints = NO;
- return newView;
- }
- - (NSMutableArray *) portraitConstraints:(UIView *)redView :(UIView *)greenView :(UIView *)blueView yellowView:(UIView *)yellowView orangeView:(UIView *)orangeView
- {
- NSMutableArray *array = [NSMutableArray array];
- // 注1:红色视图的宽度大于等于10 小于30 黄色视图的宽度大于40 小于120 水平
- [array addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[redView(>=10,<=30)]-20-[greenView(>=40,<=120)]-20-[yellowView]-20-|" options:0 metrics:nil
- views:NSDictionaryOfVariableBindings(redView, greenView, yellowView)]];
- // 注2:垂直方向 red高度H:100<= <=160 蓝色 H:30<= <=60 橙色待定
- [array addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-70-[redView(>=100,<=160)]-20-[blueView(>=30,<=60)]-[orangeView]-20-|" options:0 metrics:nil
- views:NSDictionaryOfVariableBindings(redView, blueView, orangeView)]];
- // 和注2类似
- [array addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-70-[greenView(>=100,<=160)]-20-[blueView(>=30,<=60)]-[orangeView]-20-|" options:0 metrics:nil
- views:NSDictionaryOfVariableBindings(greenView, blueView, orangeView)]];
- // 和注2类似 或许有人会问 为什么得添加黄色和绿色,原因很简单,就是为了满足各个约束,避免造成约束不足
- [array addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-70-[yellowView(>=100,<=160)]-20-[blueView(>=30,<=60)]-[orangeView]-20-|" options:0 metrics:nil
- views:NSDictionaryOfVariableBindings(yellowView, blueView, orangeView )]];
- // 注3:控制blued的宽度
- [array addObjectsFromArray:[NSLayoutConstraint
- constraintsWithVisualFormat:@"H:|-20-[blueView]-120-|" options:0 metrics:nil
- views:NSDictionaryOfVariableBindings(blueView)]];
- // 注4:为橙色高度添加约束条件
- [array addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[blueView]-20-[orangeView(>=blueView)]-20-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(blueView, orangeView)]];
- // 注4:为橙色添加宽度约束条件
- [array addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[orangeView]-20-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(blueView, orangeView)]];
- return array;
- }
0 0
- ios8 使用storyboard 进行自动布局(一)
- ios8 使用storyboard 进行自动布局(一)
- ios8 使用storyboard 进行自动布局(一)
- ios8 使用storyboard 进行自动布局
- ios8 使用storyboard 进行自动布局(一)
- iOS8-storyboard自动布局
- Storyboard/Xib使用UIScrollView进行自动布局注意点
- Storyboard自动布局
- storyBoard的自动布局
- storyboard的自动布局
- storyboard自动布局
- storyboard 自动布局
- storyboard中的自动布局
- iOS8开发~UI布局(二)storyboard中autolayout和size class的使用详解
- iOS8开发~UI布局(二)storyboard中autolayout和size class的使用详解
- iOS8开发~UI布局(二)storyboard中autolayout和size class的使用详解
- iOS8开发~UI布局(二)storyboard中autolayout和size class的使用详解
- iOS8开发~UI布局(二)storyboard中autolayout和size class的使用详解
- 数据结构导论(1)
- Unique Binary Search Trees II
- TextView显示效果示例(5)
- Codeforces Round #296 (Div. 2)
- Windows 10新压缩算法:32位/64位占用空间可节省1.5GB/2.6GB
- ios8 使用storyboard 进行自动布局
- 将数字字符串中字符转换为整数并返回其值
- 在direct 3d中实现shadow map的步骤
- 算法,请不要这么经典 - 二叉树的可视化
- Struts2中关于label标签的声明应用
- 使用Memcached的8个要点
- 在Mac机上安装Openfire无法启动
- 一段代码理解函数指针
- js字符串相关