1. 實現(xiàn)依據(jù):
根據(jù)國家使用習(xí)慣不同表示的意思不同
NSLayoutAttributeLeading:在習(xí)慣由左向右看的地區(qū)和媳,相當(dāng)于NSLayoutAttributeLeft;在習(xí)慣從右至左看的地區(qū)淆珊,相當(dāng)于NSLayoutAttributeRight ;
NSLayoutAttributeTrailing:在習(xí)慣由左向右看的地區(qū)耸别,相當(dāng)于NSLayoutAttributeRight健芭;在習(xí)慣從右至左看的地區(qū),相當(dāng)于NSLayoutAttributeLeft ;
2. 代碼規(guī)范
2.1:使用系統(tǒng)aotuLayout框架時規(guī)范如下秀姐;
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:label attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeading multiplier:1 constant:50]];
此代碼示例是label處于self.view最左邊的布局慈迈。
Attribute參數(shù)根據(jù)1的依據(jù)應(yīng)該使用NSLayoutAttributeLeading
注意:代碼中凡是居某控件的左邊Attribute參數(shù)便填NSLayoutAttributeLeading,居某控件的右邊Attribute參數(shù)便填NSLayoutAttributeTrailing省有。
2.2:使用Masonry第三方框架布局規(guī)范如下:
[labelLL mas_makeConstraints:^(MASConstraintMaker *make) {
? ? ? ? make.leading.equalTo(labelL.mas_trailing).offset(10);
? ? ? ? make.top.equalTo(labelL);
}];
此段代碼是labelLL位置為labelL左邊間距10的布局痒留。
根據(jù)1的依據(jù)應(yīng)使用make.leading確定labelLL的左邊位置谴麦。
同理:如果是確定右邊位置應(yīng)使用make.trailing。
3. 控件自動大小
3.1 UI設(shè)計規(guī)范:考慮多語言翻譯文本長度過長問題伸头,設(shè)計UI時應(yīng)考慮界面上下左右可延伸匾效。
3.2 自動大小代碼規(guī)范:
[labelL mas_makeConstraints:^(MASConstraintMaker *make) {
? ? ? ? make.leading.mas_equalTo(0);
? ? ? ? make.top.mas_equalTo(200);
? ? ? ? make.width.mas_greaterThanOrEqualTo(@60);//至少寬60
? ? ? ? make.width.mas_lessThanOrEqualTo(@160);//至多寬160
? ? ? ? make.height.mas_greaterThanOrEqualTo(@30);//至少高30
}];
此段代碼是labelL的位置為處于self.View的最左邊,距離self.View上邊界200的位置恤磷,寬高根據(jù)文字自動大小面哼,寬最大160,最小60扫步,高最小60.