我有一个UITableView
我正在切换setEditing:animated:
的,以允许用户插入和删除行。打开编辑时,我希望将新insert new item
行添加到表中,然后我希望编辑控件像平常一样进行动画处理。我不希望新insert new item
行使用淡入淡出之类的东西自行设置动画。我希望它只是出现,然后像任何现有的表数据源行一样滑入。
不过,这是由于我当前的代码而发生的事情(点击查看大图):
顶行做我想要的——它只是滑过,删除图标淡入。当它消失时,删除图标淡出,行再次展开。
第二行是我自己添加到表中的非数据源行。在出现时,它根本没有动画。插入图标和行同时出现并且不会滑入。当它消失时,行很好地扩展,但加号图标会随之滑动。动画是针对整行进行的,而不是针对加号图标然后单独行,就像第一行一样。
这是我的代码的简要介绍,但我认为提供类文件的链接可能会更好。
当按下工具栏上的编辑按钮时,我调用我的UIViewController
方法setEditing:animated:
。在这种方法中,我执行以下操作...
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];
// keep the table in the same editing mode
[_table setEditing:editing animated:animated];
if (editing) {
[_table insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:_channels.count inSection:0]] withRowAnimation:UITableViewRowAnimationNone];
} else {
[_table deleteRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:_channels.count inSection:0]] withRowAnimation:UITableViewRowAnimationNone];
}
}
这是插入动画发生的地方。我尝试将整个内容包装在 [_table beginUpdate] 和 endUpdate 中,以及插入行。似乎都没有产生我想要的干净动画。
有什么想法我可能会错过吗?整个代码文件在这里: