在 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
):
我有一个注册和登录视图控制器和一个移动的 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
):