超视觉iPhone应用程序,如UIView或UITableView滚动

Dăn*_*ian 17 iphone uitableview uiscrollview ios

有人可以给我一个关于如何重新创建UltraVisual iPhone应用程序中使用的滚动效果的提示吗?这是一个用于说明效果的gif:

在此输入图像描述

第一个"cell"是全高,而其他显示的单元格是常规大小.当用户向上滚动时,第一个单元格慢慢地动画到常规高度,而下一个单元格慢慢变大.他们使用的是UITableView?或者UIScrollView?我不知道它是如何制作的......

And*_*oes 36

哈,你结束了我的一天!我实际上写了那个视图:)

这实际上非常简单.此视图使用UICollectionView和自定义UICollectionViewLayout.

一般原则是这样的.我组成了一个"拖动间隔" - 这是每个单元格之间拖动所需的距离.此值是任意的,但会影响用户拖动切换单元格的程度.集合视图的总高度是"拖动间隔"*视图中的项目数.然后我将布局设置为自动分页到最近的拖动间隔(这使它具有捕捉行为).这与coverflow的工作方式非常相似.通过这个,您可以通过将contentOffset.y除以高度来计算"顶部单元格"的索引.

使用"顶部单元格"索引,您可以非常轻松地为每个单元格生成帧.顶部单元格的框架是{0,contentOffset.y,320,176},从那里您可以计算下一个单元格框架,依此类推.

然后最后一个技巧是计算页面索引的插值.这基本上是当前单元格索引的小数部分.这将给出0到1之间的数字,可用于计算顶部框架和下面框架之间的插值.

每个'prepareLayout'计算屏幕上单元格的帧,然后在layoutAttributesForElementsInRect:中,根据生成的帧生成所有layoutAttributes.

使用此技巧,您可以创建各种复杂的布局.UICollectionView可以是一个强大的野兽,但绝对需要一点点来围绕它.

  • 是的,如果您不介意在Github上发布该代码,那就太棒了.我很想知道你是怎么做到的 (3认同)
  • 你在iPhone上做过最好的应用程序:D我真的很喜欢它.谢谢你:D (2认同)

Cod*_*ezy 10

这很酷!我们做了一个相当简单的使用这样的控件,可以在这里找到:

https://github.com/RobotsAndPencils/RPSlidingMenu

  • @ m177312闪烁是固定的.一旦他们合并到podspec你应该很高兴:https://github.com/CocoaPods/Specs/pull/10303 (3认同)
  • @ m177312是的,我把它作为一个问题添加到这里https://github.com/RobotsAndPencils/RPSlidingMenu/issues/6我会在不久的将来调查它. (2认同)