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
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?