您当前的位置: 首页 >  ios

white camel

暂无认证

  • 3浏览

    0关注

    442博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

iOS 一一 AutoLayout之VFL实现

white camel 发布时间:2017-08-10 22:36:21 ,浏览量:3

VFL(Visual Format Language)

ps:看这篇文章之前最好先对约束有点了解,如果不了解,可以去看看我的另一篇文章,苹果原代码实现Autolayout

  • 之前已经为大家简单介绍了用苹果原API实现Autolayout,现在我来介绍另一种Autolayout的实现方法
  • VFL是什么时候出的我也不记得了哈,它的出世是为了减轻原API带来的繁琐
  • 我个人认为VFL其实也没好到哪儿去,哈哈,个人愚见啊
  • 好,接下来我详细的为大家解读这个东东 VFL思想
  • VFL的思想与其他的实现方法有所不同,它更为宏观化,它将约束分成了两块
    • 水平方向(H:)
    • 垂直方向(V:)
  • 也就是说,大家在创建约束的时候,得把水平与垂直方向的约束用字符串一并表达出来,而不是一个一个的添加 VFL代码解析
  • 我先来给大家介绍一下VFL的API,它的API短了一些,但是要筹齐参数是件很麻烦的事
/**
 *  VFL创建约束的API
 *
 *  @param format  传入某种格式构成的字符串,用以表达想要添加的约束,如@"H:|-margin-[redView(50)]",水平方向上,redView与父控件左边缘保持“margin”间距,redView的宽为50
 *  @param opts    对齐方式,是个枚举值
 *  @param metrics 一般传入以间距为KEY的字典,如: @{ @"margin":@20},KEY要与format参数里所填写的“margin”相同
 *  @param views   传入约束中提到的View,也是要传入字典,但是KEY一定要和format参数里所填写的View名字相同,如:上面填的是redView,所以KEY是@“redView”
 *
 *  @return 返回约束的数组
 */
+ (NSArray *)constraintsWithVisualFormat:(NSString *)format options:(NSLayoutFormatOptions)opts metrics:(NSDictionary *)metrics views:(NSDictionary *)views;

//部分NSLayoutFormatOptions的枚举选项
/*
NSLayoutFormatAlignAllLeft = (1             
关注
打赏
1661428283
查看更多评论
0.0406s