第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

iOS:autolayout,多個(gè)label如何設(shè)置居中顯示?

iOS:autolayout,多個(gè)label如何設(shè)置居中顯示?

瀟瀟雨雨 2019-03-30 11:31:40
剛學(xué)autolayout,關(guān)于這個(gè)問(wèn)題,一直沒(méi)搞清楚!疑惑一:多個(gè)view(label)如何設(shè)置居中顯示?c[backviewaddConstraints:[NSLayoutConstraintconstraintsWithVisualFormat:@"H:|[lab_before][lab_middle][lab_after]|"options:0metrics:nilviews:NSDictionaryOfVariableBindings(lab_before,lab_middle,lab_after)]];枚舉類型參數(shù)中:ctypedefNS_OPTIONS(NSUInteger,NSLayoutFormatOptions){NSLayoutFormatAlignAllLeft=(1
查看完整描述

2 回答

?
弒天下

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊

剛剛算是勉強(qiáng)自己解決了:方法比較笨,即用一個(gè)backview來(lái)包含3個(gè)label,然后計(jì)算3個(gè)label的寬度并賦值給外層的backview,最后把backview居中顯示,就完成了3個(gè)label的居中顯示!如果有更好的方法,歡迎補(bǔ)充,討論!
層次結(jié)構(gòu)是:
c-view
-backview
-label1
-label2
-label3
c//設(shè)置水平布局
[backviewaddConstraints:[NSLayoutConstraintconstraintsWithVisualFormat:@"H:|[lab_before]-[lab_middle]-[lab_after]|"options:0metrics:nilviews:NSDictionaryOfVariableBindings(lab_before,lab_middle,lab_after)]];
c//設(shè)置backview寬度
[viewaddConstraint:[NSLayoutConstraintconstraintWithItem:backviewattribute:NSLayoutAttributeCenterXrelatedBy:NSLayoutRelationEqualtoItem:dynaContentViewattribute:NSLayoutAttributeCenterXmultiplier:1.0constant:before_width+middle_width+after_width]];
//設(shè)置backview居中顯示
[viewaddConstraint:[NSLayoutConstraintconstraintWithItem:backviewattribute:NSLayoutAttributeCenterXrelatedBy:NSLayoutRelationEqualtoItem:dynaContentViewattribute:NSLayoutAttributeCenterXmultiplier:1.0constant:0.0]];
//設(shè)置backview的高度
[viewaddConstraints:[NSLayoutConstraintconstraintsWithVisualFormat:@"V:[backview(==34)]-0-|"options:0metrics:nilviews:NSDictionaryOfVariableBindings(backview)]];
問(wèn)題來(lái)了:
有沒(méi)有方法不計(jì)算每個(gè)label的寬度并賦值給superview的寬度,而是自動(dòng)填充superview!
PS:我在測(cè)試的時(shí)候,發(fā)現(xiàn)不設(shè)置backview的寬度,就是整個(gè)屏幕的寬度!
2015/03/01更新:
c@interfaceCustomView1:UIView
@property(nonatomic,strong)UILabel*label1;
@property(nonatomic,strong)UILabel*label2;
@end
c@implementationCustomView1
-(id)init{
self=[superinit];
if(self){
_label1=[UILabelnew];
_label1.text=@"AAAAAA121212121";
_label1.textColor=[UIColorblackColor];
_label1.translatesAutoresizingMaskIntoConstraints=NO;
[selfaddSubview:_label1];
_label2=[UILabelnew];
_label2.text=@"BBBBBB";
_label2.textColor=[UIColororangeColor];
_label2.translatesAutoresizingMaskIntoConstraints=NO;
[selfaddSubview:_label2];
}
returnself;
}
-(void)updateConstraints{
NSDictionary*views=NSDictionaryOfVariableBindings(_label1,_label2);
//label1的寬高
[selfaddConstraint:[NSLayoutConstraintconstraintWithItem:_label1attribute:NSLayoutAttributeWidthrelatedBy:NSLayoutRelationEqualtoItem:nilattribute:NSLayoutAttributeNotAnAttributemultiplier:1.0constant:[_label1intrinsicContentSize].width]];
[selfaddConstraint:[NSLayoutConstraintconstraintWithItem:_label1attribute:NSLayoutAttributeHeightrelatedBy:NSLayoutRelationEqualtoItem:nilattribute:NSLayoutAttributeNotAnAttributemultiplier:1.0constant:[_label1intrinsicContentSize].height]];
//label2的寬高
[selfaddConstraint:[NSLayoutConstraintconstraintWithItem:_label2attribute:NSLayoutAttributeWidthrelatedBy:NSLayoutRelationEqualtoItem:nilattribute:NSLayoutAttributeNotAnAttributemultiplier:1.0constant:[_label2intrinsicContentSize].width]];
[selfaddConstraint:[NSLayoutConstraintconstraintWithItem:_label2attribute:NSLayoutAttributeHeightrelatedBy:NSLayoutRelationEqualtoItem:nilattribute:NSLayoutAttributeNotAnAttributemultiplier:1.0constant:[_label2intrinsicContentSize].height]];
[selfaddConstraints:[NSLayoutConstraintconstraintsWithVisualFormat:@"H:|[_label1][_label2]|"options:NSLayoutFormatAlignAllBottommetrics:nilviews:views]];
[selfaddConstraints:[NSLayoutConstraintconstraintsWithVisualFormat:@"V:[_label1]|"options:0metrics:nilviews:views]];
[superupdateConstraints];
}
-(CGSize)intrinsicContentSize{
CGSizel1size=[_label1intrinsicContentSize];
CGSizel2size=[_label2intrinsicContentSize];
returnCGSizeMake(l1size.width+l2size.width,l1size.height);
}
@end
                            
查看完整回答
反對(duì) 回復(fù) 2019-03-30
?
狐的傳說(shuō)

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊

Q:有沒(méi)有方法不計(jì)算每個(gè)label的寬度并賦值給superview的寬度,而是自動(dòng)填充superview?
A:重寫superview的updateConstraints和intrinsicContentSize方法
                            
查看完整回答
反對(duì) 回復(fù) 2019-03-30
  • 2 回答
  • 0 關(guān)注
  • 525 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)