我有一个 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/