在 Vine Sign Up 等视图控制器之间创建流畅的 Gif Segue

Creating a smooth Gif Segue between view controllers like Vine Sign Up

我有一个注册和登录视图控制器和一个移动的 gif 背景以及其他故事板 UI 元素。

目前,我在每个视图控制器上都有 gif 编码,当我在每个视图控制器之间切换时,gif 显然会重新启动,而且更多的是在页面之间移动时加载之前快速弹出白色。

我可以将什么添加到我的代码中: 1.防止segue时出现白色pop 2. 使用 gif 在视图控制器之间顺利切换,就好像什么都没发生一样,所以看起来你移动的是 UI 而不是页面。

查看 Vine 登录/注册以供参考,因为它基本上以类似的方式运行,并且希望背景 gif 像在 Vine 上一样运行。

override func viewDidLoad() {

       super.viewDidLoad()


    let filePath = NSBundle.mainBundle().pathForResource("beachwater", ofType:     "gif")
    let gif = NSData(contentsOfFile: filePath!)

    let webViewBG = UIWebView(frame: self.view.frame)
    webViewBG.loadData(gif!, MIMEType: "image/gif", textEncodingName: "UTF-8", baseURL: NSURL(string: "")!)
    webViewBG.userInteractionEnabled = false;
    webViewBG.layer.zPosition = -3.0;

    self.view.addSubview(webViewBG)

作为起点,不要为此使用 UIWebView。这就是您在 gif 之前看到白色背景的原因,Web 视图已在屏幕上呈现,然后在 gif 呈现后不久。

我建议使用以下技术之一分离出 gif 帧并将它们加载到 UIImage(最后加载到 UIImageView):