像 Apple 的 iPad 邮件应用一样构建“分组”动画

Posted

技术标签:

【中文标题】像 Apple 的 iPad 邮件应用一样构建“分组”动画【英文标题】:Build a "grouping" animation like Apple's iPad mail app 【发布时间】:2013-01-28 19:38:13 【问题描述】:

我怎样才能像 Apple 邮件或 Gmail iPad 应用一样制作这种“分组”动画?

这是否需要硬编码,并完全由动画框架完成,或者 Apple 是否公开了一个 API 来完成这项工作。我检查了开发人员文档,但没有看到类似的内容。但 Gmail 能够完全复制 Apple 的动画,这就是为什么我很想知道它是否可以以更简单的方式完成。

【问题讨论】:

@benzado 有点刻薄,但他是对的。 Legolas,你有足够的代表知道这个问题显然不适合这个网站。 @CarlNorum 我刚刚更新了我的问题。 “使用编程”并不是一个很好的答案。我的问题是 Apple 是否免费提供此功能,还是需要硬编码。 您的更新大大改善了这个问题。不幸的是,我对你没有太多帮助。希望有人会! 研究使用集合视图,查看关于集合视图的 WWDC 会议,其中包含有用的信息和想法 如果您检查 Gmail 应用程序,它的行为并不完全相同,即。选择许多电子邮件并取消选择不在堆栈顶部的电子邮件。在苹果的app中,上面的纸卷在remove动画之前;在谷歌的应用程序中,他们没有。这有点强化了它是一个定制组件的想法。 【参考方案1】:

我 95% 确定 Apple 没有 UIStackOfPaperViewController 或类似的东西。您必须自己编写代码。

从概念上讲,它并不太复杂:带有纹理的背景视图,每个子视图以随机角度倾斜,下方有一个阴影。您可以通过在“真实”视图周围的视图中绘制渐变来制作阴影。 Core Animation 的默认行为可能会做正确的事情,例如如果您在屏幕外创建页面视图,然后设置最终位置,它将按照您的意愿飞到堆栈上。

如果您不需要支持 ios 6 之前的版本,Collection View Controller 中可能有一些好东西可以让这更容易。

希望这些信息足以让您入门,但您的问题确实很广泛。很难回答“我该怎么做 X?”如果您没有指定起点,或回答“我怎样才能以更简单的方式做到这一点?”如果你没有具体说明你认为困难的方式是什么。

【讨论】:

感谢本扎多!希望有像'UIStackOfPaperView'这样更简单的东西:P无论如何,我想我会编写自己的堆栈实现:D谢谢!

以上是关于像 Apple 的 iPad 邮件应用一样构建“分组”动画的主要内容,如果未能解决你的问题,请参考以下文章

仅将新数据从服务器推送到 iPad

iPhone 应用程序像 iPad 应用程序一样在 iPad 上打开

试图模仿 Apple iPad popover 风格

如何让 tableview 像 iPad 的 youtube 应用程序中的一样?

如何像在 Evernote 应用程序中一样从 iPad 屏幕底部显示 UIView

iOS 如何让 UISlider 和 UIButton 像 Apple 的 Music 应用一样?