我已使用以下代码设置行插入。我在插入和删除行时只使用UITableViewRowAnimationNone
,但有时,正如您在下面的gif中看到的那样,该行从顶部或底部开始动画。在大多数情况下,它并不像我想要的那样动画,但有时它会在插入和删除时动画。我不是在谈论扩展显示插入单元格的表格视图,我的意思是单元格似乎从底部或顶部滑入。
以下是控制插入动画的方法:
- (void)contentHeaderFooterView:(NFContentHeaderFooterView *)headerFooterView sectionOpened:(NSInteger)section{
NSIndexPath *pathToAdd = [NSIndexPath indexPathForRow:0 inSection:section];
[self.tableView beginUpdates];
[self.tableView insertRowsAtIndexPaths:@[pathToAdd] withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];
}
这是控制删除动画的方法。
- (void)contentHeaderFooterView:(NFContentHeaderFooterView *)headerFooterView sectionClosed:(NSInteger)section{
NSIndexPath *pathToDelete = [NSIndexPath indexPathForRow:0 inSection:section];
[self.tableView beginUpdates];
[self.tableView deleteRowsAtIndexPaths:@[pathToDelete] withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];
}
答案 0 :(得分:0)
我有类似的问题,表更新没有执行我直接给它的动画。我无法确定为什么,但我可以建议的一件事是,不是在begin / endUpdates之间进行特定的行删除,你只需要一个硬的reloadData。
答案 1 :(得分:0)
在这里回答:https://stackoverflow.com/a/37352789/577237
重新发布,因为它很简短:
[UIView performWithoutAnimation:^{
[self.tableView beginUpdates];
[self.tableView deleteRowsAtIndexPaths:rowsToRemove withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];
}];
请注意,这是iOS 7.0 +