【发布时间】:2018-07-15 05:20:28
【问题描述】:
我的应用程序中的一个表格视图出现问题,想知道是否有人遇到过类似的情况。我在自定义 tableviewcell 中有 2 个标签 - questionLabel 和 answerLabel - 它们具有以下约束:
在两个 UILabel 上,我将行数设置为 0,以使它们成为多行,并在两者中添加了 preferredmaxLayoutWidthproperty,如下所示:
cell.questionLabel.preferredMaxLayoutWidth = cell.questionLabel.frame.width
cell.answerLabel.preferredMaxLayoutWidth = cell.answerLabel.frame.width
根据其他 StackOverflow 建议,我在 viewDidLoad() 方法中也有以下内容:
self.faqTableView.rowHeight = UITableViewAutomaticDimension
self.faqTableView.estimatedRowHeight = 140.00
在第一次加载时,标签仍然被截断,即使行设置为 0,而且奇怪的是在标签的不一致位置。然而,当向下滚动屏幕然后回到顶部时,标签会自动更正自己,并且布局是完美的。请看下面的截图:
以前有没有人遇到过这个问题,如果有,您能否指出我正确的方向。我不确定这是我设置失败,还是我的自动布局约束有问题。
【问题讨论】:
-
你设置
lineBreakMode了吗? -
aaargh,我当时在现场,我仍然无法在几年的iOS开发后找到完全的解决方案。这是我非常讨厌 Auto Layout 的原因之一。
-
@Priya 没有为此设置任何内容,但它设置为“截断尾巴”,我认为这是默认设置。更改这些只是以不同方式截断文本,但问题仍然存在。
-
设置 label.lineBreakMode = .byWordWrapping
-
@Priya 我已经为标签使用了“内容拥抱和抗压缩优先级”,这似乎也没什么用,恐怕:(
标签: ios swift uitableview autolayout uilabel