iphone – UIWebView内部UIScrollView内容大小
我必须在UIScrollView中添加UIWebView和一些按钮和标签.我已经看到很多关于如何在UIScrollView中添加UIWebView的问题但不幸的是他们无法帮助我完成我的任务.所以请不要将其标记为重复或其他内容.
从理论上讲,问题可以通过以下步骤解决: 1)使UIWebView成为UIScrollView的子视图. 2)调用setScrollEnabled:NO,UIWebView禁用其原生滚动. 3)将UIScrollView和UIWebView的内容大小设置为UIWebview中加载的HTML字符串的大小. 我正在使用iOS 6和StoryBoards.我添加了UIWebView作为UIScrollView的子视图. 然后在我的webViewDidFinishLoad中,我使用了以下内容: NSString *webHeight = [webView stringByEvaluatingJavaScriptFromString:@"document.height;"]; NSLog(@"WebView Height %@",webHeight); 这给了我WebView的高度. 在StackOverFlow上,我遇到了以下内容. CGRect frame = webView.frame; frame.size.height = 1; webView.frame = frame; CGSize fittingSize = [webView sizeThatFits:CGSizeZero]; frame.size = fittingSize; webView.frame = frame; NSLog(@"size: %f,%f",fittingSize.width,fittingSize.height); 然后我将UISCrollView的大小设置为UIWebView的大小: mainScrollView.contentSize = webView.bounds.size; 我可以向下滚动到底部,但底部有一个空白区域,UIWebView根据加载的html内容的大小没有大小. 看起来UIScrollView已将其大小更改为UIWebView内容的大小,但UIWebView未显示所有内容.我该如何解决这个问题? 请不要向我提供有关Apple文档的建议,该文档说您不应在UIScrollView中使用UIWebView.我已经知道了,但我想根据我的项目要求使用它. 解决方法
我想我可以在这里说清楚.我认为你混淆了框架大小和内容大小.首先,我将描述方法论,然后提出具体建议.
方法 您有一个webView,并且您正确地禁用了它的滚动并将contentSize设置为Web内容的完整大小.您还应将帧大小设置为Web内容的完整大小.然后你将这个addSubview添加到原始的scrollView(0,0).将scrollView contentSize设置为Web内容的完整大小.将scrollView框架设置为viewController.view的边界. 具体建议 >您发布的“fittingSize”代码看起来不合适.该代码的目的是设置webView的框架.使用NSLog或断点查明是否设置了Web内容的完整大小.>请注意,您发布的javascript代码的用途与您发布的“fittingSize”代码相同.检查哪一个产生正确的输出.>尝试找出webView和scrollView的帧大小以帮助您进行调试.最好的方法是设置不同的背景颜色,如下所示:setBackgroundColor:[UIColor redColor]>我最好的猜测是webView.frame.size的设置不够大. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |