我有一个带有自定义UITableViewCells的UITableView。可以使用动画打开和关闭这些单元格。当用户滚动时,我想关闭单元格。我通过发布这样的通知来做到这一点:
[[NSNotificationCenter defaultCenter] postNotificationName:@"closeSwipedCell" object:nil];
这将调用一个方法,在我的UITableViewCell子类中执行我的简单动画。这工作正常但动画不会发生,直到用户再次停止滚动UITableView。 滚动表视图时是否可以执行此动画?
答案 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:
该选项。