我有两个标签彼此相邻,但是右边的标签即使在左侧设置截断规则时也会截断。
我的代码:
// 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];
我该怎么做?
答案 0 :(得分:4)
这是内容压缩阻力优先级发挥作用的地方。根据要先压缩的值,将这些值设置得越来越高。您想要的标签在抵制压缩时优先级更高。降低要首先压缩(截断)的标签。
您可以通过编程方式(默认为750)执行此操作:
[labelFirst setContentCompressionResistancePriority:749
forAxis:UILayoutConstraintAxisHorizontal];
或在尺寸检查器选项卡下的界面构建器中:
Here is another answer详细介绍了它们的工作原理。
答案 1 :(得分:0)
NSLineBreakByTruncatingTail - 它是标签的默认LineBreakMode值,将其更改为labelSecond以具有差异