【问题标题】:IOS: How to create a destroy effect animation on a uiviewIOS:如何在uiview上创建破坏效果动画
【发布时间】:2012-10-10 12:02:27
【问题描述】:

我想创建一个效果来在拉伸后销毁视图。

它可以是像气球一样的流行音乐,爆炸,破碎成碎片之类的东西,甚至只是简单地分成两半,然后我会淡出碎片。但我在石英中没有发现任何类似的东西,或者对如何做有很多想法。

每个视图都不同,但如果没有其他方法,我想我会创建一个可以单独动画的几块背景。

【问题讨论】:

标签: iphone ios animation quartz-graphics effect


【解决方案1】:

AFAIK 没有针对此类事物的内置功能,但以下内容可能会为您指明正确的方向。我没有时间详细说明,但我觉得您可能会从一些通用指南中受益,至少在其他人可以提供示例代码或不同方法之前。

听起来您想实现一个简单的粒子生成器,将视图渲染为图像,然后将该图像输入生成器以创建粒子,然后根据所需效果为它们设置动画。

可能有现有的第三方库可以做到这一点(在实现类似的东西之前我会四处搜索),否则你可以采取一些方法,我只是给出基本的想法:

生成器获取图像并制作一些粒子形状的子图像(如碎片)。您需要一种算法来计算形状和大小,然后您可以在图像上使用 CAShapeLayer 蒙版或实际渲染较小的图像(如果使用一个图像对象作为带有掩码的多个 CALayers/UIImageViews 的源经过优化,仅将其需要的像素复制到屏幕上,而实际上并不复制数据,那么这可能是您的最佳选择。您可以通过四处搜索或作为最后的写作手段来确定该行为代码)。

获得视图/图层集合后,您可以使用另一种算法来计算给定效果的新大小/位置/旋转,并且只需使用标准动画 api 来移动算法提供的集合内容。同样,实施将取决于您可能需要进行的潜在优化。直接使用 CALayer 会比 UIImageView 的集合有更好的性能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-08
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多