Masonry約束總結(jié)(初級)

一、代碼演示

1、設(shè)置第一個label

2、設(shè)置第二個label

3、設(shè)置第三個label

4、運行后的效果

例子2:

二、屬性

/// 左側(cè)

@property (nonatomic, strong, readonly) MASConstraint *left;

/// 上側(cè)

@property (nonatomic, strong, readonly) MASConstraint *top;

/// 右側(cè)

@property (nonatomic, strong, readonly) MASConstraint *right;

/// 下側(cè)

@property (nonatomic, strong, readonly) MASConstraint *bottom;

/// 首部

@property (nonatomic, strong, readonly) MASConstraint *leading;

/// 底部

@property (nonatomic, strong, readonly) MASConstraint *trailing;

/// 寬

@property (nonatomic, strong, readonly) MASConstraint *width;

/// 高

@property (nonatomic, strong, readonly) MASConstraint *height;

/// 橫向中點

@property (nonatomic, strong, readonly) MASConstraint *centerX;

/// 縱向中點

@property (nonatomic, strong, readonly) MASConstraint *centerY;

/// 文本基線

@property (nonatomic, strong, readonly) MASConstraint *baseline;

// 在Masonry的源碼中我們可以看到他們對應(yīng)的NSLayoutAttribute的屬性對應(yīng)如下

1、- (MASConstraint *)left {

return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLeft];

}

2、- (MASConstraint *)top {

return [self addConstraintWithLayoutAttribute:NSLayoutAttributeTop];

}

3、- (MASConstraint *)right {

return [self addConstraintWithLayoutAttribute:NSLayoutAttributeRight];

}

4、- (MASConstraint *)bottom {

return [self addConstraintWithLayoutAttribute:NSLayoutAttributeBottom];

}

5、- (MASConstraint *)leading {

return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLeading];

}

6、- (MASConstraint *)trailing {

return [self addConstraintWithLayoutAttribute:NSLayoutAttributeTrailing];

}

7、- (MASConstraint *)width {

return [self addConstraintWithLayoutAttribute:NSLayoutAttributeWidth];

}

8、- (MASConstraint *)height {

return [self addConstraintWithLayoutAttribute:NSLayoutAttributeHeight];

}

9、- (MASConstraint *)centerX {

return [self addConstraintWithLayoutAttribute:NSLayoutAttributeCenterX];

}

10、- (MASConstraint *)centerY {

return [self addConstraintWithLayoutAttribute:NSLayoutAttributeCenterY];

}

11、- (MASConstraint *)baseline {

return [self addConstraintWithLayoutAttribute:NSLayoutAttributeBaseline];

}

三、iOS8之后Masonry新出了幾個屬性:

/// 距離邊框的距離,等同于選中Storyboard的Constrain to margins后加約束

@property (nonatomic, strong, readonly) MASConstraint *leftMargin;

@property (nonatomic, strong, readonly) MASConstraint *rightMargin;

@property (nonatomic, strong, readonly) MASConstraint *topMargin;

@property (nonatomic, strong, readonly) MASConstraint *bottomMargin;

@property (nonatomic, strong, readonly) MASConstraint *leadingMargin;

@property (nonatomic, strong, readonly) MASConstraint *trailingMargin;

@property (nonatomic, strong, readonly) MASConstraint *centerXWithinMargins;

@property (nonatomic, strong, readonly) MASConstraint *centerYWithinMargins;

- (MASConstraint *)leftMargin {

return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLeftMargin];

}

- (MASConstraint *)rightMargin {

return [self addConstraintWithLayoutAttribute:NSLayoutAttributeRightMargin];

}

- (MASConstraint *)topMargin {

return [self addConstraintWithLayoutAttribute:NSLayoutAttributeTopMargin];

}

- (MASConstraint *)bottomMargin {

return [self addConstraintWithLayoutAttribute:NSLayoutAttributeBottomMargin];

}

- (MASConstraint *)leadingMargin {

return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLeadingMargin];

}

- (MASConstraint *)trailingMargin {

return [self addConstraintWithLayoutAttribute:NSLayoutAttributeTrailingMargin];

}

- (MASConstraint *)centerXWithinMargins {

return [self addConstraintWithLayoutAttribute:NSLayoutAttributeCenterXWithinMargins];

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容