当用户选择 GIF 时,我想在显示 GIF 的所有内容之上呈现一个叠加层。
我知道 iOS 上有几种方法可以做到这一点。那里有伟大的UI图像+GIF动画它工作得很好,但对于较长的 GIF,它们非常慢,并且不能以与 UIWebView 相同的速度播放(以准确的播放速度播放)。
这很糟糕,因为如果该类别不能缓慢播放它们,它就会满足我需要的一切。
但事实并非如此,所以我尝试使用 UIWebView,但是我对三件事感到困惑:
如何获得 UIWebView 呈现时应有的大小(其框架)?我是否必须先将 GIF 下载为 UIImage 然后检查其size
财产?有更好的方法吗(可能需要一段时间)?
如何停止播放直到完全加载?
对于上面的类别,因为它只是一个 UIImage,当我将它作为 UIImageView 嵌入到滚动视图中时,它很容易放大和缩小。这可以用 UIWebview 实现吗?
1.
我想到的第一个解决方案是将 webview 的背景设置为清晰的颜色,并在加载完成后将其放置在正确的位置。
通常我使用
[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"]
但如果您将 webview 定向到 gif url,那么这将不起作用。
2.
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
webView.alpha = 1;
}
这样,只有在 gif 完全加载后,UIWebView 才会显示给用户。
3.
[webView setScalesPageToFit:YES];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)