码迷,mamicode.com
首页 > 移动开发 > 详细

ios 关于VFL的一点事情

时间:2015-03-13 16:04:23      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:

VFL :Visual Format language

写法:

功能        表达式

水平方向          H:

垂直方向          V:

Views         [view]

SuperView      |

关系         >=,==,<=

空间,间隙       -

优先级        @value

 

需要注意的是,在用代码创建的UIView在,一定要加上下面这句代码

   XXX.translatesAutoresizingMaskIntoConstraints=NO;

如果没有上面这一行,你的约束将不生效,控制台会输出一连串的错误.

 


具体上代码:

 

    // 1.添加控件

    UIView *blueView = [[UIView alloc] init];

    blueView.backgroundColor = [UIColor blueColor];

    blueView.translatesAutoresizingMaskIntoConstraints = NO;

    [self.view addSubview:blueView];

    

    UIView *redView = [[UIView alloc] init];

    redView.backgroundColor = [UIColor redColor];

    redView.translatesAutoresizingMaskIntoConstraints = NO;

    [self.view addSubview:redView];

    

    // 2.VFL生成约束

    NSDictionary *mertrics = @{@"margin" : @20}; // 参数\数值

    NSDictionary *views = NSDictionaryOfVariableBindings(blueView, redView);

    NSArray *conts = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-margin-[blueView]-margin-[redView(==blueView)]-margin-|" options:NSLayoutFormatAlignAllTop | NSLayoutFormatAlignAllBottom metrics:mertrics views:views];

    

    NSArray *conts2 = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[blueView(==blueHeight)]-margin-|" options:0 metrics:@{@"blueHeight" : @40, @"margin" : @20} views:views];

    [self.view addConstraints:conts];

    [self.view addConstraints:conts2];

 

 

    UIButton *button=[[UIButton alloc]init];

    button=[UIButton buttonWithType:UIButtonTypeSystem];

    [button setTitle:@"VFL" forState:UIControlStateNormal];

    button.translatesAutoresizingMaskIntoConstraints=NO;

    [button setBackgroundColor:[UIColor blackColor]];

    [self.view addSubview:button];

    NSArray *Hconstraint =[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[button]-200-|" options:0 metrics:nil views:@{@"button":button}];

    NSArray *Vconstraint = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-300-[button]-200-|" options:0 metrics:nil views:@{@"button":button}];

    [self.view addConstraints:Hconstraint];

    [self.view addConstraints:Vconstraint];

 

 

 

ios 关于VFL的一点事情

标签:

原文地址:http://www.cnblogs.com/allenChan/p/4335068.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!