有没有人能给我一个提示,告诉我如何在UltraVisual iPhone应用中重现滚动效果?下面是一个演示效果的gif:
第一个"cell"
是全高的,而其他显示的单元格是正常大小的。当用户向上滚动时,第一个单元格会慢慢地动画到正常高度,而下一个单元格会慢慢变大。他们用的是UITableView?
还是UIScrollView?
我不知道它是怎么做的……
发布于 2013-11-28 03:48:54
哈,你真让我高兴!实际上是我写的这个视图:)
这实际上非常简单。此视图使用带有自定义UICollectionViewLayout的UICollectionView。
一般原则是这样的。我设定了一个“拖动间隔”--这是在每个单元格之间拖动所需的距离。该值是任意的,但会影响用户必须拖动多少才能切换单元格。集合视图的总高度是“拖动间隔”*视图中的项数。然后,我将布局设置为自动分页到最近的拖动间隔(这使其具有捕捉行为)。这与coverflow的工作原理非常相似。由此,您可以通过将contentOffset.y除以高度来计算“top cell”的索引。
有了“top cell”索引,你就可以很容易地为每个单元格生成框架。最上面的单元格的框架是{ 0,contentOffset.y,320,176 },从那里你可以计算下一个单元格的框架,依此类推。
然后,最后一个技巧是计算页面索引的插值。这基本上是当前单元格索引的小数部分。这将给出一个介于0和1之间的数字,该数字可用于计算顶部帧和下面帧之间的插值。
每个“prepareLayout”计算屏幕上单元格的框架,然后在layoutAttributesForElementsInRect:中,根据生成的框架生成所有的layoutAttributes。
使用这个技巧,你可以创建各种复杂的布局。UICollectionView可以是一头强大的野兽,但肯定需要一点时间才能理解它。
发布于 2014-03-14 10:48:34
这非常酷!我们做了一个非常容易使用的控件,如下所示:
https://stackoverflow.com/questions/20250470
复制相似问题