您好,登錄后才能下訂單哦!
[NSLayoutConstraint constraintWithItem:(id)item attribute:(NSLayoutAttribute)attribute relatedBy:(NSLayoutRelation)relation toItem:(id)otherItem attribute:(NSLayoutAttribute)otherAttribute multiplier:(CGFloat)multiplier constant:(CGFloat)constant]
參數說明:
第一個參數:指定約束左邊的視圖view1
第二個參數:指定view1的屬性attr1,具體屬性見文末。
第三個參數:指定左右兩邊的視圖的關系relation,具體關系見文末。
第四個參數:指定約束右邊的視圖view2
第五個參數:指定view2的屬性attr2,具體屬性見文末。
第六個參數:指定一個與view2屬性相乘的乘數multiplier
第七個參數:指定一個與view2屬性相加的浮點數constant
這個函數的對照公式為:
view1.attr1 <relation> view2.attr2 * multiplier + constant
注意:
1.如果你想設置的約束里不需要第二個view,要將第四個參數設為nil,第五個參數設為NSLayoutAttributeNotAnAttribute
舉例:
[NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:view2 attribute:NSLayoutAttributeRight multiplier:1 constant:10]
翻譯過來就是:view1的左側,在,view2的右側,再多10個點,的地方。
附視圖的屬性和關系的值:
typedef NS_ENUM(NSInteger, NSLayoutRelation) { NSLayoutRelationLessThanOrEqual = -1, //小于等于 NSLayoutRelationEqual = 0, //等于 NSLayoutRelationGreaterThanOrEqual = 1, //大于等于 }; typedef NS_ENUM(NSInteger, NSLayoutAttribute) { NSLayoutAttributeLeft = 1, //左側 NSLayoutAttributeRight, //右側 NSLayoutAttributeTop, //上方 NSLayoutAttributeBottom, //下方 NSLayoutAttributeLeading, //首部 NSLayoutAttributeTrailing, //尾部 NSLayoutAttributeWidth, //寬度 NSLayoutAttributeHeight, //高度 NSLayoutAttributeCenterX, //X軸中心 NSLayoutAttributeCenterY, //Y軸中心 NSLayoutAttributeBaseline, //文本底標線 NSLayoutAttributeNotAnAttribute = 0 //沒有屬性 };
NSLayoutAttributeLeft
/NSLayoutAttributeRight
和 NSLayoutAttributeLeading
/NSLayoutAttributeTrailing
的區別是left/right永遠是指左右,而leading/trailing在某些從右至左習慣的地區會變成,leading是右邊,trailing是左邊。(大概是⊙﹏⊙b)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。