在 iOS 中实现永久动画背景的最佳技术是啥?

Posted

技术标签:

【中文标题】在 iOS 中实现永久动画背景的最佳技术是啥?【英文标题】:What is the best technique to implement a permanent animated background in iOS?在 iOS 中实现永久动画背景的最佳技术是什么? 【发布时间】:2016-11-17 13:02:36 【问题描述】:

我需要添加一个背景,其中随机云来自两侧。这种效果几乎需要出现在应用程序的每个屏幕中。我尝试将animateWithDurationUIImageViews 一起使用,但它会消耗大量电池,并且当我在某些带有其他额外动画的屏幕上时,这些动画看起来很生涩。

还尝试使用.gif 和视频作为背景:

Video as background

但它们太重了,因为它必须是一个长视频才能使它看起来像云以随机间隔出现。而且还消耗大量资源。

是否有其他方法可以制作这种效果,例如轻量级动画技术?

【问题讨论】:

看看this library ,它不会添加云而是添加星星 :D 你可以看看它的结构以得到一个想法 一个高性能的动画实现可以在这个答案中找到:***.com/a/21079559/763355 【参考方案1】:

我想你最好的选择是在你的 UIViews 上使用 CALayer,它应该比 UIImage 解决方案更轻量级。

【讨论】:

我刚才试了一下,不幸的是,我得到了同样的结果。这个解决方案的一个问题是 CALayer 不能在屏幕外渲染(为了让云从侧面进入) 你是怎么画云的?您可以使用图像将云创建为子图层,然后移动它们。 我正在创建一个 CALayer,将其 content 设置为 [UIImage imageNamed:@"cloud"].CGImage。我也发现了这个***.com/questions/4686873/…。它说这两种方法几乎没有区别:( 没想到这么密集,您的云图像是否针对您使用的分辨率进行了优化? 就我而言,我只有 8 个云。当任何云从屏幕上消失时,它应该重新开始动画。是的,它们针对分辨率进行了优化。

以上是关于在 iOS 中实现永久动画背景的最佳技术是啥?的主要内容,如果未能解决你的问题,请参考以下文章

我们如何在 iOS 11 中实现 App Store 的 Today 功能中的新推送视图控制器动画

在 iOS 中实现 AnticipateOvershootInterpolator 动画

如何在iOS中实现矩形UIButton到圆形的漂亮动画?

在 Swift 动画中实现 CSS

你如何在 iOS 中实现“时钟擦除”/径向擦除效果?

iOS 动画方法内容整理