28

您可以在滚动时(如在 iOS7 上的消息应用程序中)添加弹性单元格效果UITableView吗?我已经看到它在 . 上工作的例子UICollectionView,但对于表格视图绝对没有。

这是不可能的,我应该将每个表格视图更改为集合视图并重做所有单元格吗?

4

2 回答 2

28

抱歉不行。

每一个UICollectionView都有一个布局对象(一个UICollectionViewLayout子类),它描述了每个单元格在集合视图的滚动视图中的位置以及在给定的 CGRect 中哪些单元格是可见的。UITableView没有这个,所以做任何操纵其细胞位置的事情都会更加困难。

除了动画UIView对象之外,UIKit Dynamics 还可以直接用于动画,这对于具有可重用单元格的样式类UICollectionViewLayoutAttributes是必需的,这些单元格可能不会全部显示在屏幕上,但仍然是“物理”的一部分。然后可以使用诸如此类的方法来填充您的布局对象。UITableViewUICollectionViewUIDynamicAnimatorUIDynamicAnimatorlayoutAttributesForCellAtIndexPath:

a 没有等效的布局对象UITableView,也没有等效的UIDynamicAnimator代码可以在屏幕外单元格上操作,如果您想要这种行为UITableView,切换到 a 可能会容易得多。UICollectionView

于 2014-01-07T20:07:42.963 回答
8

在 WWDC 2013 session Exploring Scroll Views in iOS 7 中,他们谈到了使用集合视图和 UIKit 动态来实现此效果。我想用集合视图比表格视图更容易做到这一点,因为它更容易定位单元格。会话中可能有示例代码。

于 2014-01-07T19:23:21.220 回答