Autolayout自动布局实现的方法二:VFL语言实现约束

什么是VFL语言

  • VFL全称是VisualFormatLanguage,翻译过来是“可视化格式语言”

  • VFL是苹果公司为了简化Autolayout的编码而推出的抽象语言


    UIView *blueView = [[UIView alloc] init];
    blueView.backgroundColor = [UIColor blueColor];
    // 不要将AutoresizingMask转为Autolayout的约束blueView.translatesAutoresizingMaskIntoConstraints = NO;
    [self.view addSubview:blueView];
    
    UIView *redView = [[UIView alloc] init];
    redView.backgroundColor = [UIColor redColor];
    // 不要将AutoresizingMask转为Autolayout的约束
    redView.translatesAutoresizingMaskIntoConstraints = NO;
    [self.view addSubview:redView];
    // 间距
    NSNumber *margin = @20;
    // 添加水平方向的约束
    NSString *vfl = @"H:|-margin-[blueView]-margin-[redView(==blueView)]-margin-|";
    NSDictionary *views = NSDictionaryOfVariableBindings(blueView, redView);
    NSDictionary *mertrics = NSDictionaryOfVariableBindings(margin);
    NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:vfl options:NSLayoutFormatAlignAllTop | NSLayoutFormatAlignAllBottom metrics:mertrics views:views];
    [self.view addConstraints:constraints];
    // 添加竖直方向的间距
    NSNumber *height = @40;
    NSString *vfl2 = @"V:[blueView(height)]-margin-|";
    NSDictionary *mertrics2 = NSDictionaryOfVariableBindings(margin, height);
    NSArray *constraints2 = [NSLayoutConstraint constraintsWithVisualFormat:vfl2 options:kNilOptions metrics:mertrics2 views:views];
    [self.view addConstraints:constraints2];
  • 最终效果:

竖屏效果

横屏效果

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,835评论 4 61
  • 关于布局约束的发展史: 1.通过代码计算frame 2.Autoresizing(设置控件与父控件的相对关系,从而...
    4d49353c3819阅读 2,115评论 0 1
  • 算了一下,看《非诚勿扰》也有三四年的时间了!开始觉得只不过是一个相亲节目,有什么可看的呢?而且自己也早已没有相亲的...
    红袖_sqqabout阅读 627评论 0 2
  • 晚秋,当是冷枫片片,飘飘落落。寒窗之外,已然暮色,那颗枝干初长满校仅有的银杏,依旧那么的特立独行,非要把自己使劲的...
    千途阅读 295评论 5 4
  • 按照用途分类出以下工程函数: BESSELI 用途:返回修正Bessel函数值,它与用纯虚数参数运算时的Besse...
    四方院祭司阅读 840评论 0 0

友情链接更多精彩内容