我有两个彼此相邻的标签,但是即使我在左边的标签上设置了截断规则,右边的标签也会被截断。
我的代码:
// Club name labelFirst = [[UILabel alloc] init]; labelFirst.adjustsFontSizeToFitWidth = NO; [labelFirst setLineBreakMode:NSLineBreakByTruncatingTail]; [labelFirst setTranslatesAutoresizingMaskIntoConstraints:NO]; [self.contentView addSubview:labelFirst]; labelSecond = [[UILabel alloc] init]; [labelSecond setAdjustsFontSizeToFitWidth:NO]; [labelSecond setTranslatesAutoresizingMaskIntoConstraints:NO]; [labelSecond setText:NSLocalizedString(@"IsCancelled", nil)]; [self.contentView addSubview:labelSecond]; NSLayoutConstraint *constraint = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-73-[label]-[label2]-10-|" options:0 metrics:nil views:@{@"label": labelFirst, @"label2": labelSecond}] [self.contentView addConstraints:constraint];
我应该怎么做?
这是内容压缩优先级发挥作用的地方。根据要首先压缩的值将这些值设置为较高和较低。要在抗压缩方面优先考虑的标签较高。降低要首先压缩(截断)的标签。
您可以通过编程方式执行此操作(默认值为750):
[labelFirst setContentCompressionResistancePriority:749 forAxis:UILayoutConstraintAxisHorizontal];
或在“大小检查器”选项卡下的界面构建器中:
这是另一个答案,将详细介绍它们如何工作。