UITableViewAutomaticDimension

UITableViewAutomaticDimension

我正在iOS 8上构建基本的表格 View 。我观看了WWDC '14视频,主题是单元格的自动大小设置,并试图重现该概念,但遇到了一些问题。在viewDidLoad上:我在打电话:

//estimate for my cells though they may vary

self.tableView.estimatedRowHeight = 300.0;

self.tableView.rowHeight = UITableViewAutomaticDimension;

当我的 View 和表加载完毕后,性能就可以了。当我单击一个单元格时,该程序会将我带到详细 View 。当我在该 View 上单击“后退”按钮并返回到表格 View 时,事情就开始奇怪了。然后,当我滚动时,单元格开始“跳跃”。跳跃是指它们无法平稳滚动-他们倾向于从一个地方跳到另一个地方或跳到另一个地方。

我应该补充一点,内存不是问题,因为正在重用单元,并且后台的数据很少。我的单元格(在 Storyboard 文件中)的约束也呈蓝色,并且在调试器中没有看到自动布局约束异常。

有人用 UITableViewAutomaticDimension 看到过这种行为吗?它只是一个Apple bug还是更多?谢谢。

最佳答案

我使用self.tableView.rowHeight = UITableViewAutomaticDimension;行发现了奇怪的问题

但是,当我将其替换为委托(delegate)方法时,一切都变得更好了。在您的情况下将是:

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return UITableViewAutomaticDimension;
}

- (CGFloat) tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return 300.0f;
}

10-08 05:34