您的位置:首页 > 移动开发 > IOS开发

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: