2017-06-16 57 views
0

所以问题是:我有一个通过这个家伙创建扩展的方法设置SwiftGif Link背景GIF位置转换到其他的ViewController

我用的方法backgroundAnimated.loadGif一个GIF背景(名称:“giphy”)加载当前的gif,它将gif分析到图像上,然后将其填充到数组中,随后调用UIImage类的animatedImage方法。

但事情是 - 我想通过segue过渡到下一个ViewController时保持循环gif状态。 例如,如果我有鸟飞过屏幕中心,然后随机有人按下按钮去下一个ViewController,gif重置并从头开始。帮我找到一个解决办法,请

我想到的解决方案:通过prepareForSegue帧的

  • 传递的是坐标到其他视图控制器
    问题是 - myBackground.frame总是在零个坐标,所以我不知道如何获取最后停止的帧
  • 从CGRect初始帧位置开始 问题是 - 当按下转换按钮时,无法猜测它已停止的帧的位置。
  • 让所有ViewControllers一个GIF背景(不知道如何实现任何这样的事情)

回答

0

你确定你的myBackground的UIImageView正在发生变化框架。我不这么认为。

我猜你的gif正在改变它的关键帧。因此,您需要存储已停止的关键帧的索引,而不是从关键帧开始您的gif。

+0

复杂的是,一个gif被分割成图像,并放入数组与延迟和东西,以便它可以传递到UIView.animatedImage方法,动画的序列解析图像到数组中,我不知道如何从animatedImage最后处理的图像开始。我会很感激,如果你有任何想法 –

+0

我想基础的gif实现是基于CAAnimation通过看这个wiki https://github.com/bahlo/SwiftGif/wiki/Extended-use。所以我认为你可以使用CALayer'timeOffset'设置从先前停止的时间偏移开始。有关'timeOffset'的详情:http://ronnqvi.st/controlling-animation-timing/ –