iOS

====

尽管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

原文地址:https://www.cnblogs.com/beddup/p/4875783.html