gpt4 book ai didi

ios - UITableView 部分标题自动高度未正确更新

转载 作者:技术小花猫 更新时间:2023-10-29 10:10:06 25 4
gpt4 key购买 nike

我遇到了自动/动态 UITableView 部分标题 View 的问题,其中包含一个 UILabel 包装 (numberOfLines = 0)。高度计算不正确,尤其是当您滚动表格并且重新使用 View 时。有时 UILabel 会换行,有时会被截断,有时一个或多个标签不可见,有时标签之间会有额外的间距。自定义 View 包含一个带有三个 UILabel 的垂直 UIStackView,其中一个换行。

可以在 https://github.com/outerstorm/tableviewHeaderTest 找到演示该问题的完整示例应用程序.

部分标题高度在 viewDidLoad 中设置为自动,具有以下内容:

    tableView.sectionHeaderHeight = UITableViewAutomaticDimension
tableView.estimatedSectionHeaderHeight = 30.0

并且还实现了以下 heightForHeaderInSection 只是为了让它工作:

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return UITableViewAutomaticDimension
}

我也试过在不同的点调用 setNeedsLayout()layoutIfNeeded() 但无济于事。任何建议将不胜感激。

下面是在应用程序中看到的行为的屏幕截图。第一段被截断,第二段太高:

enter image description here

最佳答案

我最近遇到了这样的问题。

我通过设置多行标签的 preferredMaxLayoutWidth 解决了这个问题,即

在设置标签值之前,将它们的 preferredMaxLayoutWidth 设置为:

self.label1.preferredMaxLayoutWidth = self.label1.frame.size.width
self.label2.preferredMaxLayoutWidth = self.label2.frame.size.width
self.label3.preferredMaxLayoutWidth = self.label3.frame.size.width

关于ios - UITableView 部分标题自动高度未正确更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44005890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com