我正在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;
}