Visual Format Language 可视化格式语言

Visual Format Language 可视化格式语言
是苹果公司为了简化Autolayout的编码而推出的抽象语言

VFL 语法

H: 水平方向
V: 垂直方向
| 边界
[ 视图名称 ]
( 常数值 )
== >= <= 关系
- 距离

VFL 示例

H:|-0-[button]-0-|
    按钮 距离 左右 两边为 0
V:|-0-[button]-0-|
    按钮 距离 上下 两边为 0
H:|-20-[button(50)]
    按钮 距离 左 边 20
    按钮宽度 50
V:[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
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zok93

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值