Я хочу использовать масонство, чтобы показать две метки (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];
我 设置 了, 我 把 相关 的 代码 贴 上去 了, 怎么 没 效果 啊, 感觉 是 ContentHugging 没 效果. – Zentopia
... 你 设置 label1.width 和 label2.width 一样 啊 – PhilCai
但是 label1 和 label2 的 内容 长度 不 一样, 所以 不能 设置 一样 .. – Zentopia