qwebview怎样调整加载的网页的大小

 我来答
狐狸清浅
推荐于2016-08-06 · TA获得超过6260个赞
知道小有建树答主
回答量:879
采纳率:64%
帮助的人:446万
展开全部
  一. 在UIWebView中使用flashScrollIndicators
  使用UIScrollView时,我们可以使用flashScrollIndicators方法显示滚动标识然后消失,告知用户此页面可以滚动,后面还有更多内容。UIWebView内部依赖于UIScrollView,但是其没有flashScrollIndicators方法,但可以通过其他途径使用此方法,如下所示。

  for (id subView in [webView subviews]) { if ([subView respondsToSelector:@selector(flashScrollIndicators)]) { [subView flashScrollIndicators]; } }

上述代码片段可以到webViewDidFinishLoad回调中使用,加载完网页内容后flash显示滚动标识。
  二.去除UIWebView的背景阴影
  假设一个UIWebView是白底黑字的,当用户拖动UIWebView时,会看到后面的背景阴影,如下图所示。

可以使用下述代码去除阴影,并将背景设为白色。

  if ([[webView subviews] count] > 0) { // hide the shadows for (UIView* shadowView in [[[webView subviews] objectAtIndex:0] subviews]) { [shadowView setHidden:YES]; } // show the content [[[[[webView subviews] objectAtIndex:0] subviews] lastObject] setHidden:NO]; } webView.backgroundColor = [UIColor whiteColor];

使用此代码后的拖动效果如图所示。

  三.根据内容获取UIWebView的高度
  有时候需要根据不同的内容调整UIWebView的高度,以使UIWebView刚好装下所有内容,不用拖动,后面也不会留白。有两种方式可根据加载内容获取UIWebView的合适高度,但都需要在网页内容加载完成后才可以,即需要在webViewDidFinishLoad回调中使用。
  1.使用sizeThatFits方法。这样就可以用手指来控制网页的放大缩小了。

  - (void)webViewDidFinishLoad:(UIWebView *)webView { CGRect frame = webView.frame; frame.size.height = 1; webView.frame = frame; CGSize fittingSize = [webView sizeThatFits:CGSizeZero]; frame.size = fittingSize; webView.frame = frame; }

sizeThatFits方法有个问题,如果当前UIView的大小比刚好合适的大小还大,则返回当前的大小,不会返回最合适的大小值,所以使用sizeThatFits前,先将UIWebView的高度设为最小,即1,然后再使用sizeThatFits就会返回刚好合适的大小。
  2.使用JavaScript

  - (void)webViewDidFinishLoad:(UIWebView *)webView { CGRect frame = webView.frame; NSString *fitHeight = [webview stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"]; frame.size.height = [fitHeight floatValue]; webView.frame = frame; }

使用UIWebView的stringByEvaluatingJavaScriptFromString方法,执行JavaScript语句document.body.scrollHeight;可获取当前网页正文的全文高,测试时曾错误的使用了document.body.offsetHeight。
  3.限制
  这两种方法都只能在加载网页完成时才能使用,当在UITableView中的UITableViewCell包含UIWebView时,无法在tableView:heightForRowAtIndexPath:中获取到UIWebView最合适的高度,也就无法确定UITableViewCell的合适高度。 Any Ideas?
利娅77
推荐于2018-04-12 · TA获得超过3474个赞
知道答主
回答量:474
采纳率:100%
帮助的人:17.6万
展开全部
  qwebview调整加载的网页的大小的方法如下:
  可以使用sizeThatFits方法。这样就可以用手指来控制网页的放大缩小了。
- (void)webViewDidFinishLoad:(UIWebView *)webView { CGRect frame = webView.frame; frame.size.height = 1; webView.frame = frame; CGSize fittingSize = [webView sizeThatFits:CGSizeZero]; frame.size = fittingSize; webView.frame = frame; }
但是sizeThatFits方法有个问题,如果当前UIView的大小比刚好合适的大小还大,则返回当前的大小,不会返回最合适的大小值,所以使用sizeThatFits前,先将UIWebView的高度设为最小,即1,然后再使用sizeThatFits就会返回刚好合适的大小。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式