iosiOS中的自动布局——autoLayout
2016-04-16 21:39
381 查看
autoLayout自动布局
约束视图和视图之间的关系 来分配
屏幕上的位置
使用VFL(Visual Format Language
视觉格式语言)通过添加字符串
来约束视图和视图之间的关系
VFL: 需有
横 竖
两个方向 的约束
横向: H:
| 表示他的父视图
-50- 表示后面视图
与前面视图的距离 (后面视图是textField,前面视图是他的父视图)
[textField(>=200)] 要约束视图的宽 (>=200)允许最小的宽度是200
如果是竖向
就是允许最小的高度
@"H:|-50-[textField(>=200)]-50-|"
距离坐边原点距离50 右边边界距离50
允许视图的最小宽度是200
竖向: V:
使用autoLayout
必须把translatesAutoresizingMaskIntoConstraints禁用才可以使用
相对布局是找一个参照物
拿参照物当做基础,设置他和参照物的相对距离
来设置自己的位置
UIView *view1 = [self
createWithClass:@"UIView"];
view1.backgroundColor = [UIColor
redColor];
UIView
*view2 = [self
createWithClass:@"UIView"];
view2.backgroundColor = [UIColor
orangeColor];
NSDictionary *views =
NSDictionaryOfVariableBindings(view1,view2);
[self.view
addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:@"H:|-50-[view1(>=100)]-50-|"
options:NSLayoutFormatAlignAllLeft
metrics:nil
views:views]];
[self.view
addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:@"V:|-100-[view1(30)]"
options:NSLayoutFormatAlignAllLeft
metrics:nil
views:views]];
[self.view
addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:@"H:|-50-[view2(>=100)]-50-|"
options:NSLayoutFormatAlignAllLeft
metrics:nil
views:views]];
[self.view
addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:@"V:[view1]-100-[view2(30)]"
options:NSLayoutFormatAlignAllLeft
metrics:nil
views:views]];
//封装的view
- (UIView *)createWithClass:(NSString *)inputView{
UIView *view = [[NSClassFromString(inputView)
alloc]
init];
view.translatesAutoresizingMaskIntoConstraints =
NO;
[self.view
addSubview:view];
return view;
}
约束视图和视图之间的关系 来分配
屏幕上的位置
使用VFL(Visual Format Language
视觉格式语言)通过添加字符串
来约束视图和视图之间的关系
VFL: 需有
横 竖
两个方向 的约束
横向: H:
| 表示他的父视图
-50- 表示后面视图
与前面视图的距离 (后面视图是textField,前面视图是他的父视图)
[textField(>=200)] 要约束视图的宽 (>=200)允许最小的宽度是200
如果是竖向
就是允许最小的高度
@"H:|-50-[textField(>=200)]-50-|"
距离坐边原点距离50 右边边界距离50
允许视图的最小宽度是200
竖向: V:
使用autoLayout
必须把translatesAutoresizingMaskIntoConstraints禁用才可以使用
相对布局是找一个参照物
拿参照物当做基础,设置他和参照物的相对距离
来设置自己的位置
UIView *view1 = [self
createWithClass:@"UIView"];
view1.backgroundColor = [UIColor
redColor];
UIView
*view2 = [self
createWithClass:@"UIView"];
view2.backgroundColor = [UIColor
orangeColor];
NSDictionary *views =
NSDictionaryOfVariableBindings(view1,view2);
[self.view
addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:@"H:|-50-[view1(>=100)]-50-|"
options:NSLayoutFormatAlignAllLeft
metrics:nil
views:views]];
[self.view
addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:@"V:|-100-[view1(30)]"
options:NSLayoutFormatAlignAllLeft
metrics:nil
views:views]];
[self.view
addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:@"H:|-50-[view2(>=100)]-50-|"
options:NSLayoutFormatAlignAllLeft
metrics:nil
views:views]];
[self.view
addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:@"V:[view1]-100-[view2(30)]"
options:NSLayoutFormatAlignAllLeft
metrics:nil
views:views]];
//封装的view
- (UIView *)createWithClass:(NSString *)inputView{
UIView *view = [[NSClassFromString(inputView)
alloc]
init];
view.translatesAutoresizingMaskIntoConstraints =
NO;
[self.view
addSubview:view];
return view;
}
相关文章推荐
- iOS开发中的敏捷方法
- iOS - 全屏滑动
- iOS 项目一直在后台执行
- iOS9横竖屏设置的处理方法和实例讲解
- iOS转场动画概览
- iOS JSPatch
- iOS开发~CocoaPods使用详细说明
- iOS block代码块强引用问题
- iOS backBarButtonItem设置
- 关于ios导航控制器的知识总结
- ArcGIS Runtime SDK for iOS(五) --- 空间几何分析与操作(上)
- ios申请真机调试( xcode 5)详细解析
- iOS中多线程实现方案
- iOS中倒计时
- iOS开发-由浅至深学习block
- iOS——Quartz2D
- iOS学习笔记30-系统服务(三)蓝牙
- iOS学习笔记30-系统服务(三)蓝牙
- 离屏 渲染
- iOS 基本编码格式转化