创建iOS 8 Weather App等动画

时间:2014-07-22 00:06:23

标签: uitableview animation uiscrollview ios8

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

  1. 在顶部我放了一个温度标签。 (大的)
  2. 在该标签下面,我放了另一个标签来显示一些文字。在天气应用程序中,有水平滚动视图显示每小时预测。
  3. 接下来是表视图。
  4. 我想要实现的是,当我开始滚动时,第一个标签会顺利消失,第二个标签会转到屏幕顶部,而TableView会延伸显示更多内容。 当我滚动回到顶部时,我希望整个过程恢复。

    这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:6)

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

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

UIScrollView with masked content

它的工作原理如下:

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

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

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

  4. 我们需要遮罩实际上作为遮罩使用,因此我们在遮罩上设置clipsToBounds = YES

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

  6. 要让它与iOS8 Weather应用程序一样完全,我们还需要执行以下操作:

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