任何人都可以帮助我理解或解决iOS11中的这个UITableView故障。我已经设法在一个相当简单的测试用例中重现了我的问题。
https://github.com/trapper-/iOS11-tableview-glitch
当重新加载靠近tableview底部的单元格时,重新加载的单元格将开始奇怪地滚动,其他单元格开始移动并跳转。
重新加载多个单元格时会变得更糟,但我不想让这个简单的例子复杂化。
答案 0 :(得分:5)
这应该有所帮助:
[UIView performWithoutAnimation:^{
[tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}];
答案 1 :(得分:3)
如果我这样使用它,它的工作。
- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 100;
}
答案 2 :(得分:0)
请尝试设置您的表格视图estimatedRowHeight(在viewDidLoad方法中):
self.tableView.estimatedRowHeight = 100;
默认情况下tableView.rowHeight设置为UITableViewAutomaticDimension,但您需要设置estimatedRowHeight 从apple - “要启用自调整表格视图单元格,必须将表格视图的rowHeight属性设置为UITableViewAutomaticDimension。您还必须为estimatedRowHeight属性赋值。一旦设置了这两个属性,系统就会使用自动布局计算行的实际高度。“