【问题标题】:Multiline UILabel bottom gets cut off after scrolling, UITableViewCell -> UIStackView -> UILabel多行UILabel底部在滚动后被切断,UITableViewCell -> UIStackView -> UILabel
【发布时间】:2018-01-26 17:17:11
【问题描述】:

图层:UITableViewCell -> UIStackView -> UILabel,表格高度设置为自动尺寸。

运行它,一切都很好

滚动后,多行标签的底部被切断

UILabel 和堆栈视图设置:

为堆栈视图布置约束:

我尝试将换行设置为自动换行,在标签上调用 sizeToFit,它们都不适合我。有什么线索吗?

【问题讨论】:

  • 为 TableViewCell 添加estimatedRowHeight
  • estimatedRowHeight 已添加,只是将其更改为不同的值,仍然不起作用。 @MohammadSadiq
  • prepareForReuse 是为您的单元实现的吗?
  • 在这种情况下我将如何使用 prepareForReuse ?我对它不是很熟悉。 @dirtydanee
  • 查看这个答案:stackoverflow.com/questions/9362713/…。基本上,您需要在此函数中将每个标签文本值重置为nil。如果你需要,我可以写一个小例子作为答案。

标签: ios swift uilabel uistackview xcode9-beta


【解决方案1】:

由于滚动出现问题,这似乎是与 TableView 在滚动时重用单元格有关的问题。因此重置您正在使用的单元格的所有值(包括尺寸以及如果有的话)。在滚动时,当前单元格内容会显示在其他正在重用的单元格中。

【讨论】:

    【解决方案2】:

    我过去解决此类问题的一种方法是将 UILabel 作为容器视图放入 UIView 中。然后把这个容器放到UIStackView里面,而不是直接把label放到stack view里面。

    您也可以尝试使用抗压优先级,因为标签似乎正在收缩,因为它的抗压性不够高。

    【讨论】:

      猜你喜欢
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-13
      • 2018-10-13
      • 2011-08-15
      • 1970-01-01
      相关资源
      最近更新 更多