ios - 如何从 UIWebView 全屏显示图像?

标签 ios uiwebview

我有一个 UIWebView 显示来自网络的文本和图像。

我想像在 UIWebView 中点击图像时那样做,我想以全屏显示它,包括方向。

所以我用下面的代码进行了测试。

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
    if (navigationType == UIWebViewNavigationTypeLinkClicked) {
        NSURL *URL = [request URL];

        NSData *data = [[NSData alloc] initWithContentsOfURL:URL];
        UIImageView *imageView  = [[UIImageView alloc] initWithImage:[UIImage imageWithData:data]];

        GGFullscreenImageViewController *vc = [[GGFullscreenImageViewController alloc] init];
        vc.liftedImageView = imageView;

        [self presentViewController:vc animated:YES completion:nil];

        return NO;
    }

    else
    {
        return YES;
    }
}

当我在 UIWebView 中点击图像时,它不起作用并显示错误。

2014-03-12 13:59:40.397 MMSP[1368:a0b] *** Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer bounds contains NaN: [0 0; nan nan]'
*** First throw call stack:

有没有像我上面说的那样做的?

最佳答案

a) 我认为你应该为 GGFullscreenImageViewController 设置框架

b) 通常(与你的崩溃无关),我认为你应该使用[[NSData alloc] initWithContentsOfURL:URL];此时加载图像。单击链接时,它会等到图像下载完毕,然后显示它,这会给您的用户带来“延迟”。

相反,只需将 URL 交给 View Controller GGFullscreenImageViewController 并让它显示一个事件指示器,直到它下载完图像。

关于ios - 如何从 UIWebView 全屏显示图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22344735/

相关文章:

ios - 如何检测 iOS UIWebView 中的重定向

objective-c - 数组中的NSIndexSet

ios - 根据 UIView 约束更新 UITableView 大小

xcode - WebView 具有多个按钮以在同一页面中浏览文件

iphone - UiWebView 以编程方式重置缩放

ios - WKWebView https 证书无效

ios - 从顶部收缩 UIView

ios - WiFi 关闭时 NSURLSessionTask 永远不会回调

ios - iOS appName.app 和 appName.app.dsYM 文件的区别

iphone - 从幻灯片 View 加载 UIWebView