回调UITableView动画

时间:2010-05-10 11:16:21

标签: iphone uitableview animation callback

是否存在一个委托协议,其中包含对UITableView动画更改结束的回调?特别是reloadSection / Rows?

2 个答案:

答案 0 :(得分:4)

实际上, DOES 似乎是一种做到这一点的方式(虽然不像它应该的那样简单!)。

虽然没有直接访问某种类型的回调,但UITableView动画似乎发生在CAAnimation内。因此,只需访问completionBlock的{​​{1}}似乎就可以满足您的需求。

以下是我在CAAnimation子类中链接2个动画的方法:

UITableView

#pragma mark - Section expanding/collapsing - (void)toggleSection:(NSInteger)index { int expandedSection = [self ExpandedSection]; if (expandedSection != NO_EXPANDED_SECTIONS_INDEX) { [self beginUpdates]; [self collapseSection:@(expandedSection)]; [CATransaction setCompletionBlock:^{ if (expandedSection != index) { [self beginUpdates]; [self expandSection:@(index)]; [self endUpdates]; } }]; [self endUpdates]; } else { [self expandSection:@(index)]; } } collapseSection:方法中的代码只是添加/删除需要折叠或展开的子部分。不过,关键在于,在使用此代码时,我终于可以折叠一个子部分 然后 展开下一个子部分。之前,两个动画同时发生,这在视觉上没有吸引力。

我希望这会对你有所帮助!我挣扎了很长时间,把头撞到了墙上,直到找到了它。

这是针对iOS 6.0编写的。我也非常希望将来某个版本能够解决这个问题/黑客攻击!

答案 1 :(得分:1)

这不是你想听的答案,但没有* :(

表格视图的委托仅回复these methods

然而,(这有点像黑客但是)动画大约0.35秒,你可以打电话给performSelector:withObject:afterdelay:。 。

*至少不是我所知道的。 。