Dou*_*ith 2 objective-c uiwebview ios uiwebviewdelegate
我正在尝试显示一个带有GIF的UIWebView,但只有GIF加载后才会显示.
我按如下方式加载GIF:
self.GIFWebView = [[UIWebView alloc] init];
self.GIFWebView.delegate = self;
NSString *html = [NSString stringWithFormat:@"<html><head></head><body><img src=\"%@\"></body></html>", post.url];
[self.GIFWebView loadHTMLString:html baseURL:nil];
Run Code Online (Sandbox Code Playgroud)
哪个post只是具有某些属性的对象,例如GIF的URL.
然后在webViewDidFinishLoad:我展示网页视图:
- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSLog(@"%f", webView.scrollView.frame.size.width);
NSLog(@"%@", [webView.request.URL absoluteString]);
}
Run Code Online (Sandbox Code Playgroud)
NSLog然而,每次我得到"0"和"约:空白" .
为什么不正确加载GIF?
然而,每次我得到NSLog的"0"和"约:空白".
不奇怪.您告诉Web视图加载您在字符串中提供的HTML而不是为其提供请求.您记录的URL是请求URL,由于没有请求,因此没有请求URL.
为什么不正确加载GIF?
可能是因为您滥用了URL对象.看看代码:
NSString *html = [NSString stringWithFormat:@"<html><head></head><body><img src=\"%@\"></body></html>", post.url];
我们不知道是什么类型post.url,但它可能NSURL*.您可能正在将NSURL传递给格式字符串,这可能无法产生您正在寻找的结果.尝试传入一个字符串[post.url absoluteString]而不是实际的NSURL对象.
此外,您可能希望html在创建后立即记录该值,以便可以检查要发送到Web视图的完整HTML.
更新:要检查的其他一些事项:
-webView:shouldStartLoadWithRequest:方法,它是否返回YES?+stringWithFormat:什么?更新2:问题在于您创建Web视图.查看您显示的代码中的第一行:
self.GIFWebView = [[UIWebView alloc] init];
Run Code Online (Sandbox Code Playgroud)
这看起来好一个典型的对象,但-init不是一个视图中的指定初始化.你应该使用-initWithFrame:.当我更改项目中的代码以使用正确的初始化程序时,图像在示例项目中正常加载:
UIWebView *GIFWebView = [[UIWebView alloc] initWithFrame:self.view.bounds];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1381 次 |
| 最近记录: |