溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

NSLayoutConstraint-代碼實(shí)現(xiàn)自動(dòng)布局的函數(shù)用法說明

發(fā)布時(shí)間:2020-07-17 16:52:57 來(lái)源:網(wǎng)絡(luò) 閱讀:6076 作者:rainbownight 欄目:移動(dòng)開發(fā)
[NSLayoutConstraint constraintWithItem:(id)item
                             attribute:(NSLayoutAttribute)attribute
                             relatedBy:(NSLayoutRelation)relation
                                toItem:(id)otherItem
                             attribute:(NSLayoutAttribute)otherAttribute
                            multiplier:(CGFloat)multiplier
                              constant:(CGFloat)constant]



參數(shù)說明:

第一個(gè)參數(shù):指定約束左邊的視圖view1

第二個(gè)參數(shù):指定view1的屬性attr1,具體屬性見文末。

第三個(gè)參數(shù):指定左右兩邊的視圖的關(guān)系relation,具體關(guān)系見文末。

第四個(gè)參數(shù):指定約束右邊的視圖view2

第五個(gè)參數(shù):指定view2的屬性attr2,具體屬性見文末。

第六個(gè)參數(shù):指定一個(gè)與view2屬性相乘的乘數(shù)multiplier

第七個(gè)參數(shù):指定一個(gè)與view2屬性相加的浮點(diǎn)數(shù)constant


這個(gè)函數(shù)的對(duì)照公式為:

view1.attr1 <relation> view2.attr2 * multiplier + constant


注意:

1.如果你想設(shè)置的約束里不需要第二個(gè)view,要將第四個(gè)參數(shù)設(shè)為nil,第五個(gè)參數(shù)設(shè)為NSLayoutAttributeNotAnAttribute


舉例:

[NSLayoutConstraint constraintWithItem:view1
                             attribute:NSLayoutAttributeLeft
                             relatedBy:NSLayoutRelationEqual
                                toItem:view2
                             attribute:NSLayoutAttributeRight
                            multiplier:1
                              constant:10]


翻譯過來(lái)就是:view1的左側(cè),在,view2的右側(cè),再多10個(gè)點(diǎn),的地方。


附視圖的屬性和關(guān)系的值:


typedef NS_ENUM(NSInteger, NSLayoutRelation) {
    NSLayoutRelationLessThanOrEqual = -1,          //小于等于
    NSLayoutRelationEqual = 0,                     //等于
    NSLayoutRelationGreaterThanOrEqual = 1,        //大于等于
};
typedef NS_ENUM(NSInteger, NSLayoutAttribute) {
    NSLayoutAttributeLeft = 1,                     //左側(cè)
    NSLayoutAttributeRight,                        //右側(cè)
    NSLayoutAttributeTop,                          //上方
    NSLayoutAttributeBottom,                       //下方
    NSLayoutAttributeLeading,                      //首部
    NSLayoutAttributeTrailing,                     //尾部
    NSLayoutAttributeWidth,                        //寬度
    NSLayoutAttributeHeight,                       //高度
    NSLayoutAttributeCenterX,                      //X軸中心
    NSLayoutAttributeCenterY,                      //Y軸中心
    NSLayoutAttributeBaseline,                     //文本底標(biāo)線
                                                                                                                                                   
    NSLayoutAttributeNotAnAttribute = 0            //沒有屬性
};


NSLayoutAttributeLeft/NSLayoutAttributeRightNSLayoutAttributeLeading/NSLayoutAttributeTrailing的區(qū)別是left/right永遠(yuǎn)是指左右,而leading/trailing在某些從右至左習(xí)慣的地區(qū)會(huì)變成,leading是右邊,trailing是左邊。(大概是⊙﹏⊙b)



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI