我正在开发iOS项目但是当我更新到iOS 9时,我在UILabels中遇到了多线问题.我正在使用Autolayout.
有谁知道如何在iOS 9中做到这一点?
我尝试了不同的方法,例如:
textLabel.lineBreakMode = UILineBreakModeWordWrap; textLabel.numberOfLines = 0;
(来自其他类似问题)但它没有用.
这是我显示多行的逻辑:
IB配置:
我以编程方式更新此值:
- (void)configureLabelsMaxLayoutWidth { [self.view layoutIfNeeded]; self.titleLabel.preferredMaxLayoutWidth = CGRectGetWidth(self.titleLabel.frame); }
我在viewWillAppear上调用此方法
解决方法
通过将numberOfLines设置为0,您将告诉标签为多行,但可能还有其他因素会禁用多行.你在使用autolayout吗?如果是这样,那么问题可能是标签内容压缩阻力优先级太低,尝试将其设置为required或1000.
内容压缩阻力告诉视图引擎您的标签可以缩小的优先级.将其设置为必需会强制它不缩小.
在Interface Builder中,只需选择标签,点击Size Inspector(小标尺),然后将其更改为1000.
或者,在代码中,等价物将是:
[label setContentCompressionResistancePriority:UILayoutPriorityrequired forAxis:UILayoutConstraintAxisvertical];