gpt4 book ai didi

ios - UITableViewAutomaticDimension 和多行标签问题

转载 作者:行者123 更新时间:2023-11-29 11:56:34 27 4
gpt4 key购买 nike

我的表格有这段代码 (_filters = UITableView)

- (void)viewDidLoad {
// table data set here ...
_filters.estimatedRowHeight = 80;
_filters.rowHeight = UITableViewAutomaticDimension;
}

- (void)viewDidAppear:(BOOL)animated {
[_filters reloadData];
}

我的自定义单元格中有多行标签。有些行是单行,有些行是多行。我正在使用约束。效果很好,但有什么问题:

当我打开 Controller 时,表格会显示一段时间大小不正确的旧单元格布局,然后过一会儿,显示正确的布局。可能是因为在viewDidLoad中设置了表格数据,然后在viewDidAppear中重新加载了表格。

但是:

1) 如果我从 viewDidAppear 中删除 reloadData,则不会呈现正确的单元格布局(除非表格单元格滚出屏幕)

2) 如果我将 viewDidLoad 中的代码放到 viewDidAppear 中,会出现与上述相同的问题。未呈现正确的单元格布局。

所以现在我渲染了正确的单元格布局,但是大约 1-2 秒我看到旧的错误单元格布局,所以它看起来很难看..

我试图将以下调用的所有内容都放在 cellForRowAtIndexPath 中,以便在初始加载时具有正确的布局,但没有任何效果..

//[cell setNeedsUpdateConstraints];
//[cell updateConstraintsIfNeeded];
//[cell setNeedsLayout];
//[cell layoutIfNeeded];

有什么解决办法吗?谢谢..

问题都在 iOS8/9 上。

最佳答案

1. 根据 Chirag 的评论,添加这个 UITableViewDelegateMethod 方法

      func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}

尝试运行并检查。如果不起作用,请使用上述方法,然后尝试以下步骤。

2.移除 Storyboard/XIB 中的标签的首选宽度/显式内容宽度

enter image description here

信用去使用你的面包

引用本教程:

http://useyourloaf.com/blog/self-sizing-table-view-cells/

http://openradar.appspot.com/17799811

例子: https://github.com/kharrison/CodeExamples/tree/master/SelfSize

关于ios - UITableViewAutomaticDimension 和多行标签问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38844404/

27 4 0