【问题标题】:UIWebView zoomingUIWebView 缩放
【发布时间】:2012-04-05 16:26:54
【问题描述】:

我已将 UIWebView 的“scalesPageToFit”属性设置为 YES。 它变得缩放,但是当页面加载时,内容是小字体,不捏就无法阅读。我们可以将缩放比例设置为默认值吗?

【问题讨论】:

  • 我真正想要的是,当加载 HTML 内容时,它应该是 100% 缩放。当我捏放大它应该放大。
  • 你试过我贴的代码了吗?试一试——它会解决你的问题!
  • scalesPageToFit = YES 它可以工作,但它会更改您的默认内容大小,Look at my answer this will helpful for you.

标签: ios uiwebview


【解决方案1】:

这更多的是关于您正在加载的网站,然后是 UIWebView 本身……

如果您可以控制显示的 HTML,只需将 <meta name="viewport" content="width=device-width;initial-scale=1.0"> 放入您的 <head>

如果没有:你可以将 JavaScript 注入 UIWebView 并执行它,所以有一个简单的方法可以使用小代码 sn-p 插入元标记:

NSString *result = [webView stringByEvaluatingJavaScriptFromString:
  [NSString stringWithFormat:@"var result = '';"
  "var viewport = null;"
  "var content = null;"
  "var document_head = document.getElementsByTagName( 'head' )[0];"
  "var child = document_head.firstChild;"
  "while ( child )"
  "{"
  " if ( null == viewport && child.nodeType == 1 && child.nodeName == 'META' && child.getAttribute( 'name' ) == 'viewport' )"
  "   {"
  "     viewport = child;"
  "     viewport.setAttribute( 'content' , 'width=device-width;initial-scale=1.0' );"
  "     result = 'fixed meta tag';"
  " }"
  " child = child.nextSibling;"
  "}"
  "if (null == viewport)"
  "{"
  " var meta = document.createElement( 'meta' );"
  " meta.setAttribute( 'name' , 'viewport' );"
  " meta.setAttribute( 'content' , 'width=device-width;initial-scale=1.0' );"
  " document_head.appendChild( meta );"
  " result = 'added meta tag';"
  "}"
  ]
];

注意,sn-p 会杀死 HTML 代码作者所做的视口设置……所以你可能会得到奇怪的结果。

【讨论】:

  • var viewport = document.querySelector('head meta[name=viewport]')代替那一堆JS怎么样?
猜你喜欢
  • 1970-01-01
  • 2013-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-25
相关资源
最近更新 更多