2015-11-09 2 views
0

Я хочу использовать масонство, чтобы показать две метки (UILabel) в строке (вид). Но левая надпись намного шире, чем правая. They shows like that in this picture.(The green label and yellow label.)Когда две ярлыки показывают бок о бок с использованием масонства, как сделать ширину каждой метки в зависимости от ее содержимого?

Сжатие содержимого из них - это UILayoutPriorityRequired, я хочу, чтобы левая часть левой метки была равна его супервину, а правая сторона правой метки равна его супервизу. Затем, как сделать ширину каждой метки в зависимости от ее содержимого с еще большим количеством меток в представлении?

Вот мой код:

_label1 = [UILabel new]; 
_label1.backgroundColor = [UIColor yellowColor]; 
_label1.text = @"label,"; 

_label2 = [UILabel new]; 
_label2.backgroundColor = [UIColor greenColor]; 
_label2.text = @"label,"; 

[_contentView1 addSubview:_label1]; 
[_contentView1 addSubview:_label2]; 

[_label1 mas_makeConstraints:^(MASConstraintMaker *make) { 
    make.top.equalTo(_contentView1.mas_top).with.offset(5); 
    make.left.equalTo(_contentView1.mas_left).with.offset(2); 
    make.height.equalTo(@40); 
}]; 

[_label2 mas_makeConstraints:^(MASConstraintMaker *make) { 

    make.left.equalTo(_label1.mas_right).with.offset(2); 
    make.top.equalTo(_contentView1.mas_top).with.offset(5); 
    make.right.equalTo(_contentView1.mas_right).with.offset(-2); 
    make.height.equalTo(@40); 
}]; 

[_label1 setContentHuggingPriority:UILayoutPriorityRequired 
          forAxis:UILayoutConstraintAxisHorizontal]; 

[_label1 setContentCompressionResistancePriority:UILayoutPriorityRequired 
             forAxis:UILayoutConstraintAxisHorizontal]; 

[_label2 setContentHuggingPriority:UILayoutPriorityRequired 
          forAxis:UILayoutConstraintAxisHorizontal]; 

[_label2 setContentCompressionResistancePriority:UILayoutPriorityRequired 
             forAxis:UILayoutConstraintAxisHorizontal]; 

ответ

0

http://swiftcn.io/topics/32 Установить содержание обниматься и сжатие содержимого. (中国 人 吧?)

+0

我 设置 了, 我 把 相关 的 代码 贴 上去 了, 怎么 没 效果 啊, 感觉 是 ContentHugging 没 效果. – Zentopia

+0

... 你 设置 label1.width 和 label2.width 一样 啊 – PhilCai

+0

但是 label1 和 label2 的 内容 长度 不 一样, 所以 不能 设置 一样 .. – Zentopia