关于NSlayoutConstraint

+(instancetype)constraintWithItem:(id)view1 attribute:(NSLayoutAttribute)attr1 relatedBy:(NSLayoutRelation)relation toItem:(nullable id)view2 attribute:(NSLayoutAttribute)attr2 multiplier:(CGFloat)multiplier constant:(CGFloat)c;



这个属性的类方法主要是表述了一个算法:

view1 的属性 (== <= >=) view2的属性*multiplier +c (c为constant,。即为约束距离)

view1 表示为一个视图

attr1 为第一个视图的属性

relation 表示view1 和view2之间的关系

 view2 表示另一个视图  当设置为nil是表示view1 对自身的约束

attr2   表示第二个视图的属性

multiplier 表示倍数

constant 表示距离

其中 NSlayoutAttribute 在苹果文档中包含以下内容

typedef NS_ENUM(NSInteger, NSLayoutAttribute) {

    NSLayoutAttributeLeft = 1,   视图左边

    NSLayoutAttributeRight,    视图右边

    NSLayoutAttributeTop,     视图顶端

    NSLayoutAttributeBottom,   视图下边

    NSLayoutAttributeLeading,   视图左边( 不一定就是左边,之所以这样设定是国际化考虑)

    NSLayoutAttributeTrailing,   视图右边

    NSLayoutAttributeWidth,   视图宽度

    NSLayoutAttributeHeight,   视图高度

    NSLayoutAttributeCenterX,  视图 x的中心点

    NSLayoutAttributeCenterY,  视图 y的中心点

    NSLayoutAttributeLastBaseline,  视图底部基线

    NSLayoutAttributeBaseline NS_SWIFT_UNAVAILABLE("Use 'lastBaseline' instead") = NSLayoutAttributeLastBaseline,

    NSLayoutAttributeFirstBaseline NS_ENUM_AVAILABLE_IOS(8_0),

    

    

    NSLayoutAttributeLeftMargin NS_ENUM_AVAILABLE_IOS(8_0), 距离左侧的间距

    NSLayoutAttributeRightMargin NS_ENUM_AVAILABLE_IOS(8_0),  距离右侧的间距

    NSLayoutAttributeTopMargin NS_ENUM_AVAILABLE_IOS(8_0),   距离顶部的间距

    NSLayoutAttributeBottomMargin NS_ENUM_AVAILABLE_IOS(8_0), 距离底部的间距

    NSLayoutAttributeLeadingMargin NS_ENUM_AVAILABLE_IOS(8_0),距离 左边的间距

    NSLayoutAttributeTrailingMargin NS_ENUM_AVAILABLE_IOS(8_0), 距离右边的间距

    NSLayoutAttributeCenterXWithinMargins NS_ENUM_AVAILABLE_IOS(8_0), 距离视图中心点x的距离

    NSLayoutAttributeCenterYWithinMargins NS_ENUM_AVAILABLE_IOS(8_0), 距离视图中心店y的距离

    

    NSLayoutAttributeNotAnAttribute = 0

};


关于NSLayoutRelation

typedef NS_ENUM(NSInteger, NSLayoutRelation) {

    NSLayoutRelationLessThanOrEqual = -1, 小于等于

    NSLayoutRelationEqual = 0,  相等

    NSLayoutRelationGreaterThanOrEqual = 1, 大于等于

};


 view的translatesAutoresizingMaskIntoConstraints属性为遵循autolayout,舍弃原来设置的高度和宽度。






你可能感兴趣的:(笔记,学习,ios)