iOS - 动画背景图片(GIF)

时间:2017-03-13 09:38:25

标签: ios objective-c animation background-image animated-gif

我目前正在开发天气应用程序。

目前我刚刚在主页上实现了静态背景图像,这取决于当前的天气。

我希望改进此功能,以便提供更好的用户体验。

我认为随着技术,硬件,wifi甚至框架和开发工具的快速发展,我们每天都能够制作越来越多的应用程序。

这就是为什么我真的很想知道改进我的App的不同方法。

此外,我认为将我的应用程序与天气应用程序市场区分开来的正确/最酷的方法是拥有独特的功能,或者至少“更有趣”#34;比其他人。

我真的不知道从哪里开始,我已经在StackOverflow上阅读了3篇关于动画背景的帖子但没有成功。

我想知道哪种解决方案更适合实现动画背景图像。

  • 我应该像GIF一样无限制地播放短视频吗?
  • 就电池消耗而言,我应该担心吗?即使知道天气应用的平均应用导航时间大约是47秒。

PS:我正在使用Objective C进行开发。

如果您有任何建议,任何信息,我会接受。

提前谢谢。

1 个答案:

答案 0 :(得分:3)

有一种方法可以创建连续动画图像。你要做的是用一个特殊的初始化器创建一个UIImage(见最后一行)。您为此初始化程序提供图像的基本名称,如“storm”。理解是你将有几个名为storm1.png,storm2.png等的文件,其继承将构成一个动画。您所做的只是调用初始化程序并指定您希望每个动画帧持续多长时间,其余所有内容都是自动的。创建的图像视图将继续循环通过您拥有的许多动画帧。只要该图像视图可见,Apple的代码将保证图像将持续动画。一旦它到达列表的末尾(例如,如果动画中有8帧,则为storm8),它会自动重新开始。至少在Swift中,你甚至不必告诉它图像的文件扩展名。

如果您希望图像覆盖视图控制器的整个背景,只需将Interface Builder中的imageView设置为固定在视图控制器主视图的左侧,右侧,顶部和底部。

以下是在代码中创建连续动画图像的语法:

    UIImage *image = [UIImage animatedImageNamed:@"storm.jpg" duration:0.5f];

或者在Swift中:

    let imageView.image = UIImage.animatedImageNamed("storm", duration: 0.5)