我有UITableView和细胞。当我选择单元格 - 高度增加时,当我再次选择此单元格时 - 高度降低。在方法" didSelectRowAtIndexPath"我用这个 -
NSArray *indArr = [[NSArray alloc] initWithObjects:(NSIndexPath*)[timer userInfo], nil];
[self.tableView reloadRowsAtIndexPaths:indArr withRowAnimation:UITableViewRowAnimationFade];
但是" UITableViewRowAnimationFade"动画已经褪色,细胞闪烁。 我尝试了另一种动画,但它们也不合适(
如何在没有动画的情况下避免此效果并更新单元格?
答案 0 :(得分:10)
将行动画设置为.None不起作用 - 仍然有东西在继续前进。在我的例子中,一些单元格改变了高度,这导致表格视图滚动。
要保持完美,请执行以下操作:
UIView.performWithoutAnimation({
let loc = tableView.contentOffset
tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: .None)
tableView.contentOffset = loc
})
答案 1 :(得分:1)
尝试一下。
UIView.setAnimationsEnabled(false)
self.yourTableView.beginUpdates()
self.yourTableView.reloadRows(at: yourIndexPath, with:UITableViewRowAnimation.none)
self.yourTableView.endUpdates()
答案 2 :(得分:-1)
查看documentation of UITableView,有一个名为UITableViewRowAnimationNone
的rowAnimation值,它不会为任何动画制作动画。试试这个:
[self.tableView reloadRowsAtIndexPaths:indArr withRowAnimation:UITableViewRowAnimationNone];