【发布时间】:2013-08-22 13:47:37
【问题描述】:
我有一个非常令人沮丧的问题。我有一个带有 UITableView 的应用程序。 当我从表格视图中删除一个单元格时,它会从数据模型中删除,然后我调用以下命令:
-(void)removeItem:(NSIndexPath *)indexPath {
[self.tableView beginUpdates];
[self.tableView deleteRowsAtIndexPaths:@[indexPath]
withRowAnimation:UITableViewRowAnimationRight];
[self.tableView endUpdates];
}
我的问题是,我已经像上面那样尝试过,并且我尝试过不使用 animateWithDuration。我什至尝试过使用 CATransaction,但无论我怎么做,动画都不会发生。
我的模拟器中有慢速动画,当我从列表中删除一个项目时,它会正确删除,但没有动画。 在重新加载表格视图数据之前,它会消失并留有片刻空白。
我在 SO 和 Google 上都进行了搜索,但似乎找不到答案。 有什么想法吗?
这可能与我在调用上述函数之前从数据模型中删除对象有关吗?
编辑:删除不正确的动画块
【问题讨论】:
-
尝试将其全部从
animateWithDuration:animations:块中删除。表格视图自己处理动画,你不需要做任何其他事情。 -
请显示您的
commitEditingStyle:方法 -
谢谢大家,但就像我在问题中所说的那样,我也尝试不使用 animateWithDuration:animations: ,但它并没有解决问题。 @Valentin:很快就会出现。
-
我对这部分代码和一般的 iOS 相当陌生。我看到我们没有实现 commitEditingStyle: 方法。从数据模型中实际删除发生在 RESTKit 调用中的删除块中,如果这有影响的话。
-
我建议从您的问题中编辑动画块,因为它完全是错误的。否则,您共享的代码看起来是正确的。但你并没有真正分享太多。我想知道你还在做什么可能会中断动画。您说“在重新加载表视图数据之前”。我不知道你的意思是什么。你打电话给
reloadData不是因为这可能会破坏动画吗?
标签: objective-c ipad uitableview ios6.1