====
尽管Visual Format Language直观,易读,易用性还是不如第三方库Masonary. 推荐使用这个。
====
关于autolayout。
1. 尽量用storyboard,添加约束方便直观。
2. 不能用storyboard添加到,考虑 Visual Format Language构建约束
- 直观,易读,代码少
3. 使用NSLayoutAttribute构建约束
- 易读,代码太TM多了
这里以几个例子说明介绍Visual Format Language
Visual Format Language是通过设置垂直(V)和水平(H)方向上,view与其它view的间距来实现view的定位。用以下代码添加约束,
+ (NSArray<NSLayoutConstraint *> *)constraintsWithVisualFormat:(NSString *)format options:(NSLayoutFormatOptions)opts metrics:(nullable NSDictionary<NSString *, NSNumber *> *)metrics views:(NSDictionary<NSString *, id> *)views;
1. @"V:|-10-[_headerL]-20-[_imageV(200)]-30-[_backBtn]-40-|"
在垂直方向上,_headerL与superview上边缘相距10,_headerL与_imageV间距20,_imageV高度200,_imageV与_backBtn相距30,_backBtn与superview下边缘相距40
2:@"[button1(==button2)]"
button1与button2宽度相等
3: @"[button(>=100@20)]"
button宽度>=100,优先级为20