【问题标题】:UIWebView in iPhone only app displayed on iPad仅 iPhone 应用程序中的 UIWebView 显示在 iPad 上
【发布时间】:2012-08-30 09:45:56
【问题描述】:

我有一个关于在 iPad 上显示的 iPhone 应用程序(不是通用 iPhone/iPad)中的 UIWebView 的问题。有一些方法可以将应用程序视为 iPhone 视网膜应用程序 (960x640),但是我无法找到在 iPad 上以与在 iPhone 上显示相同的方式显示 UIWebView 的方式。整个视图和字体都是模糊的,因为 UIWebView 认为它不是视网膜显示。

有没有办法让它认为它是视网膜显示并渲染 960x640 而不是 480x320 放大?

UIWebView contentScaleFactor 属性没有改变任何东西。该网站在 iPhone 4 上完美运行,具有正确的字体和视网膜图像。如果我将 UIWebView 框架设置为 (0, 0, 960, 640) 并按比例缩小,那么网站上的所有内容也会按比例缩小,所以我认为这不是正确的方式。

编辑: 作为内容,我正在加载一个本地站点,该站点完美地显示在 iPhone/iPhone(视网膜)上:

html 的正文部分:

(...)
<body>
    <h1>Header</h1>
    <p>Some paragraphs</p>
    <img src="image.png" width=250px height=200px/>     
</body>
(...)

样式.css:

body 
{
    width:400px;
    height:100%;
}

编辑2: 这是我得到的screenshot 的链接 - 在 iPad 上,iPhone 视网膜 UIWebView 像在 iPhone 上一样显示并放大了两次,导致结果模糊。

【问题讨论】:

  • 你在 webview 上加载了什么?
  • @jcesar 我正在加载一个本地网站,该网站的大小和位置适合 iPhone/iPhone 视网膜。
  • 不明白你是想模拟还是使用iPad Retina显示屏。
  • 再说一次:我有一个 iPhone 应用程序,可以在 iPad1/iPad2 上运行。当您在 iPad 上运行 iPhone 应用程序时,它会在 480x320 窗口中运行。您可以将其最大化为 960x640 窗口 - 在这种情况下,它应该被视为具有 960x640 分辨率的 iPhone Retina 应用程序。但是,UIWebView 检查 iPad 没有视网膜显示(这是真的)并加载帧 480x320 的内容,然后将其拉伸到看起来很糟糕的 960x640。问题是,如何强制 UIWebView 认为它在 iPhone 视网膜上运行。

标签: iphone ipad uiwebview uikit retina-display


【解决方案1】:

不,当您按下 2x 按钮时,您的应用会放大,而您无法在代码中检测到这一点。

这对 Apple 来说是一个很大的失误,当应用程序在 iPad 上以 2x 模式显示时,它本应在视网膜模式下运行,但是这意味着你需要在应用程序进入 2x 模式时重新启动它。

您的应用程序的 Retina 版本将用于新 iPad,但此处的 agin 缩放只会使像素翻倍。

【讨论】:

  • 我同意Apple默认不支持它,但是如果您使用一些适用于纯OpenGl的框架,您可以自己处理。这就是我在应用程序的其他部分所做的,我认为有一种方法可以强制 UIWebView 也以视网膜模式显示。也许有人知道如何作弊。不管怎样,谢谢你的回答;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-24
  • 2017-07-06
相关资源
最近更新 更多