滚动时的UITableViewCell动画

时间:2011-08-28 17:22:43

标签: iphone objective-c uitableview animation scroll

我有一个带有自定义UITableViewCells的UITableView。可以使用动画打开和关闭这些单元格。当用户滚动时,我想关闭单元格。我通过发布这样的通知来做到这一点:

[[NSNotificationCenter defaultCenter] postNotificationName:@"closeSwipedCell" object:nil];

这将调用一个方法,在我的UITableViewCell子类中执行我的简单动画。这工作正常但动画不会发生,直到用户再次停止滚动UITableView。 滚动表视图时是否可以执行此动画?

3 个答案:

答案 0 :(得分:2)

这里有一个非常详细的解释,说明如何刷一个单元子菜单,比如twitter iphone应用程序。我认为这与你想要的非常相似。它不使用通知来关闭单元格,它使用UIScrollViewDelegate中的事件,就像其他评论者推荐的那样。

iDevRecipes 在idevrecipes.com上查找名为“Twitter iPhone应用程序如何实现在桌面上滑动”的帖子。

有很好的描述,但也有下载的代码。

答案 1 :(得分:0)

您应该能够听取UIScrollViewDelegate方法scrollViewDidScroll:然后解雇您的活动。

查看Apple docs on UIScrollViewDelegate

编辑:如果我不清楚,UITableViewDelegate符合UISCrollViewDelegate

答案 2 :(得分:0)

scrollViewDidScroll:只能在用户滚动结束时调用。您可能希望尝试使用scrollViewWillBeginDragging:委托方法触发通知,该方法肯定会在滚动操作开始时调用。

还有几个UIViewAnimationOptions常量(IIRC,UIViewAnimationOptionBeginFromCurrentState是我正在考虑的那个)影响动画是否会在另一个动画操作期间开始,例如滚动(跟踪)。

您需要在动画方法调用的OR参数中使用现有动画选项options:该选项。