整理印象笔记之代码实现Autolayout
使用代码实现Autolayout的方法
创建约束
+(instancetype)constraintWithItem:(id)view1 attribute:(NSLayoutAttribute)attr1 relatedBy:(NSLayoutRelation)relation toItem:(nullable id)view2 attribute:(NSLayoutAttribute)attr2 multiplier:(CGFloat)multiplier constant:(CGFloat)c;
view1:要约束的控件
attr1:约束类型
relation:与参与控件之间的关系
view2:参与的控件
attr2:约束的类型
multiplier:乘数
c:常量
添加约束
- (void)addConstraint:(NSLayoutConstraint *)constraint;
- (void)addConstraints:(NSArray<__kindof NSLayoutConstraint *> *)constraints;
注意:
1、一定要在拥有父控件之后再添加约束
2、关闭Autoresizing功能
testView.translatesAutoresizingMaskIntoConstraints = NO;
使用代码实现是Autolayout的方法2-VFL
使用VFL创建约束数组
+ (NSArray<__kindof NSLayoutConstraint *> *)constraintsWithVisualFormat:(NSString *)format options:(NSLayoutFormatOptions)opts metrics:(NSDictionary<NSString *,id> *)metrics views:(NSDictionary<NSString *,id> *)views;
format:VFL语句
opts:约束类型
metrics:CFL语句中用到的具体数据
views:VFL语句中用到的控件