本文共 1773 字,大约阅读时间需要 5 分钟。
Visual Format Language 可视化格式语言
是苹果公司为了简化Autolayout的编码而推出的抽象语言VFL 语法
H: 水平方向V: 垂直方向| 边界[ 视图名称 ]( 常数值 )== >= <= 关系- 距离
VFL 示例
H:|-0-[button]-0-| 按钮 距离 左右 两边为 0V:|-0-[button]-0-| 按钮 距离 上下 两边为 0H:|-20-[button(50)] 按钮 距离 左 边 20 按钮宽度 50V:[button(40)]-20-| 按钮 距离 底 边 20 按钮高度 40
没有提供居中对齐的方式,也不支持运算符
// ViewController.m#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; UITextField *text1 = [[UITextField alloc] init];#warning mark - 用代码创建文本输入框时一定要注意给它设置边框样式 text1.borderStyle = UITextBorderStyleRoundedRect;// text1.frame = CGRectMake(100, 100, 100, 30); [self.view addSubview:text1]; UITextField *text2 = [[UITextField alloc] init];#warning mark - 用代码创建文本输入框时一定要注意给它设置边框样式 text2.borderStyle = UITextBorderStyleRoundedRect;// text2.frame = CGRectMake(100, 200, 100, 30); [self.view addSubview:text2]; text1.translatesAutoresizingMaskIntoConstraints = NO; text2.translatesAutoresizingMaskIntoConstraints = NO; NSDictionary *views = @{@"text1" : text1, @"text2" : text2}; NSDictionary *metrics = @{@"leftMargin" : @20}; // 创建第一个文本框的水平方向约束 NSArray *text1H = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-leftMargin-[text1]-leftMargin-|" options:0 metrics:metrics views:views]; [self.view addConstraints:text1H]; // 创建第二个文本框的水平方向约束 NSArray *text2H = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[text2]-20-|" options:0 metrics:nil views:views]; [self.view addConstraints:text2H]; // 创建垂直方向的约束 NSArray *text1AndText2V = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-20-[text1(50)]-20-[text2(==text1)]" options:0 metrics:nil views:views]; [self.view addConstraints:text1AndText2V];}@end
转载地址:http://jykii.baihongyu.com/