2012-02-28 72 views
0

我试图实现一种效果,其中作为tableview滚动,当前可见的单元格将根据它们在屏幕上的位置进行动画处理。我有点新的IOS开发,所以让我尝试把它分解:UITableView滚动时为单元格制作动画

  • 泰伯维负载与定制单元用户开始滚动虽然
  • 表是在运动时,可见细胞有一个UIView中我想 喜欢执行一个动画,直接对应屏幕上当前Y位置的单元格的位置。
  • 单元格将只动画时,他们 可见
  • 细胞动画直接对应于表运动,即每当 表视图滚动,将细胞动画;一旦 表停止,暂停动画

一种解决方案予想到的是更新的drawRect当的tableview移动每个单帧。根据图形操作,这可能是糟糕的表现。有没有办法在每次改变时抓取当前表格的位置?我会更适合使用Core Animation吗?

回答

1

使您的视图控制器成为UITableView的委托,并使用scrollview委托的所有方法。在那里你有很多开始滚动和结束滚动的控件,并且在thpse控件中你可以检查uitableview单元格的位置。

+0

正是我在找什么,谢谢。我认为必须有一个框架API来实现这一点,谢谢。 – Chris 2012-02-29 16:51:03

0

你必须成为委托给这样的:https://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UITableViewDelegate_Protocol/Reference/Reference.html

,这是方法覆盖和动画的细胞:

– tableView:willDisplayCell:forRowAtIndexPath: 
+0

我很确定这是不够的。它只会告诉你单元格何时可见,它不会告诉你它将显示在哪里。 – 2012-02-29 09:32:32

+2

你说得对。但是,如果您成为scrollview协议的此方法的代表:scrollViewDidScroll:然后从TableView中获取indexPathsForVisibleRows并为这些行设置动画。 Offcourse你将不得不跟踪你开始动画的单元格和你没有的单元格。无论如何,也许它仍然是一个更清洁的解决方案 – 2012-02-29 09:43:15