【发布时间】:2011-08-28 17:22:43
【问题描述】:
我有一个带有自定义 UITableViewCells 的 UITableView。这些单元格可以通过动画打开和关闭。当用户滚动时,我想关闭单元格。我通过发布这样的通知来做到这一点:
[[NSNotificationCenter defaultCenter] postNotificationName:@"closeSwipedCell" object:nil];
这将调用一个方法,该方法在我的 UITableViewCell 子类中执行我的简单动画。这工作正常,但动画不会发生,直到用户再次停止滚动 UITableView。 滚动表格视图时是否可以执行此动画?
【问题讨论】:
-
我知道,例如,如果单元格中有 UIWebView 加载一些图片,那么当表格视图滚动时,即使已经加载图片也不会出现。
-
你为什么使用通知?您是否尝试过直接从滚动视图委托调用单元格动画方法(UITableView 是 UIScrollView 子类)?考虑到通知不是立即发送,而是为下一个运行循环合并,所以可能是在滚动期间没有发送消息,然后这解释了动画的延迟。这只是猜测
-
通知可能不是最优雅的解决方案,但它似乎是最简单的,因为我必须存储活动单元格并在滚动时调用它以避免使用通知。似乎通知是在单元格开始动画时立即发送的。打开时,单元格会向右滑动(有点像 Tweetie/Twitter),然后在关闭时会做一些弹跳动画。它确实会关闭,但不会制作小“反弹”动画,如果我在不滚动的情况下调用该方法(例如再次滑动单元格)
标签: iphone objective-c uitableview animation scroll