我在tableView:didSelectRowAtIndexPath:
中有以下代码
[tableView reloadData];
[tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
它会在重新加载表视图后取消选择用户点击的表视图单元格(使用动画)。它在iOS 7及更早版本中运行良好,但在iOS 8中没有显示动画。
iOS 8中进行了哪些更改导致了这种情况?在iOS 8中实现相同效果的最佳方法是什么?
导致您调用[tableView reloadData]
的周围代码是什么?
根据您在cellForRowAtIndexPath
和周围方法中进行的处理量,这可能是一个昂贵的操作。
您可以运行:
[tableView beginUpdates];
// Update code here
[tableView endUpdates];
而不必重新加载整个tableView数据源。
当调用didSelectRowAtIndexPath
时,该单元格已被选中。因此,不需要调用tableView的selectRowAtIndexPath
方法。只需调用deselectRowAtIndexPath
就可以在更新细胞后完成任务