创建iOS 8 Weather App等动画

sdt*_*eri 4 animation uitableview uiscrollview ios8

我想创建一个视图,其中我喜欢动画,例如iOS 8 Weather app中的动画.我试着解释一下我做了什么.如果有任何不正确的地方请指导我.

  1. 在顶部我放了一个温度标签.(大的那个)
  2. 在该标签下方,我放了另一个标签来显示一些文字.在Weather应用程序中,有水平滚动视图显示每小时预测.
  3. 接下来是表视图.

我想要实现的是,当我开始滚动时,第一个标签平滑消失,第二个标签转到屏幕顶部,TableView伸展显示更多内容.当我滚动回到顶部时,我希望整个过程还原.

做这个的最好方式是什么?

Dou*_*tor 6

我最近为我正在创建的应用重新创建了iOS8 Weather应用程序的滚动效果.

完整的代码太长了,不能在这里发布,但对于任何有兴趣的人,我都把它放在GitHub上.您可以下载并运行项目以查看其外观.欢迎对代码进行改进:

带有屏蔽内容的UIScrollView.

它的工作原理如下:

  1. 您有一个滚动视图(屏幕大小),其中包含子视图(掩码),子视图又具有子视图(内容).我们还在屏幕顶部添加了一个大标签(在Weather应用程序中,显示温度).

  2. 然后使用scrollViewDidScroll委托方法在用户滚动时将蒙版固定在屏幕上.您还可以使用此方法首先向上拉伸蒙版.

  3. 将蒙版固定到屏幕意味着蒙版的子视图(我们的内容)也变得固定.但是我们希望它滚动,所以我们做的与我们对掩码所做的内容相反(再次,使用scrollViewDidScroll).

  4. 我们需要掩码实际上作为掩码,因此我们设置clipsToBounds = YES掩码.

  5. 最后,我们在滚动期间使用scrollview的偏移来移动和淡化屏幕顶部的大标签.

为了使其行为与iOS8 Weather应用程序完全相同,我们还需要执行以下操作:

  • 取消在面罩上方发生的任何滚动触摸,即在大温度显示器上.
  • 如果用户没有完成,则确保以编程方式完成移动温度显示的初始滚动.
  • 添加一个横向滚动的子视图,它固定在蒙版的顶部.

不过,我还没有完成这些.