如何在iPhone上实现吸入效果?

11

iPhone有一个私人效果列表,苹果公司使用其中的“genieEffect”和“slurpEffect”等效果。我想知道如何实现"slurpEffect" (即当您将邮件或笔记放入垃圾箱时出现的效果)。

我知道如何使用核心动画,但是我不确定它们使用了哪些部分来获得那种动画效果。


具体来说,我正在寻找如何模拟该效果(或类似效果),而不是使用私有API(这将导致我的应用被拒绝)。 - Itay
3个回答

1

我会使用仿射变换应用于视图的层。线性代数不是我的强项 ;),所以我无法指定确切的变换,但我猜测动画可能是这样的:

  • 将 alpha 设置为淡出到 0.0 或接近 0
  • 应用一个变换来将两个底部角落挤到中心附近
  • 将视图缩小到非常小
  • 将层的中心移动到屏幕底部(或您想要它出现的任何位置)。

这大致是我认为它会起作用的方式。您可能需要在不同的时间动画这些东西,或者全部在一个块中进行动画,我不太确定。

请查看 CALayer、CABasicAnimation 和 CGAffineTransform 的文档。


1
本文讨论如何使用私有 API 实现以下效果: 链接文本

我知道如何使用私有API来实现这个效果,但那不是我想要的,因为我希望我的应用程序不会被拒绝 :)具体而言,我正在寻找如何自己模拟这种效果(或类似效果)。 - Itay
从技术上讲,这是一个未记录的 API,而不是私有 API?看起来你仍在使用公开可用的函数调用。我认为这可能是安全的,但最好加入一个标志,以便如果他们不同意,你可以回退到一个简陋的效果。 - Ben Gotow
1
我想相信你是对的,但我的直觉告诉我相反。除非有人有关于如何实现这个想法的想法,否则我可能最终会提出不同的过渡方案。 - Itay

1
看起来这是2D和3D变换的复杂组合。:-\ 你需要深入了解CoreAnimation才能模拟出这种效果。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接