iphone - UIWebView 和 iPhone 4 视网膜显示屏

标签 iphone retina-display

我有一个UIWebView,它显示一些本地文本和图像。要么我在某个地方犯了错误,要么 UIWebView 不会自动处理高分辨率图像的 @2x 后缀。

所以,我的问题是有其他人通过正常方式成功地将 @2x 图像加载到 UIWebView 中,还是我需要做一些特殊的事情?我能以某种方式检测我的用户是否有视网膜显示屏吗?

最佳答案

按照您的要求...

测试功能。如果您想知道是否需要显示视网膜图像或常规图像,请测试您的设备是否具有视网膜显示屏,而不是它是特定型号(尽可能证明您的应用程序的 future ,这意味着您必须更改当新型号出现时,东西会减少)。为此,您可以使用以下示例代码:

if([[UIScreen mainScreen] respondsToSelector:@selector(scale)] &&
   [[UIScreen mainScreen] scale] == 2.0)
{
    /* We have a retina display. */
}
else
{
    /* We do not. */
}

截至我撰写本文时,此代码在所有型号和所有固件版本上都是安全的。在 Apple 弃用 scale 方法之前,它在未来版本中也将是安全的,而这可能永远不会发生。

关于您的问题的更多信息,我不知道如何在 WebView 中执行此操作,而无需事先确定视网膜图像和非视网膜图像的位置。一旦我有了这些信息,我(过去)就用它来替换网页希望我替换的一些已知的哨兵文本,就像我会在 HTML 中放入一些内容: {{{image_location }}} 我可以在其中下载 HTML 数据,将其转换为字符串格式,然后对该字符串进行替换,替换该文本,如果我们在视网膜显示屏上,则使用 @2x 图像的 URL,适当的比例因子,或者正常大小的图像(如果没有)(使用上面的代码)。

如果没有人提出更好的解决方案,希望这会有所帮助。

关于iphone - UIWebView 和 iPhone 4 视网膜显示屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3724058/

相关文章:

iphone - 以非视网膜模式启动应用程序?

iphone - devicePixelRatio 真的有用吗

iphone - 我可以在 iPhone/iPad 上为 HTML5 视频换肤吗?

iphone - UIView 的 drawRect 没有被调用

ios - 在 Swift 中对 UITabBarController 进行 segue 后如何摆脱 UINavigationController?

css - 媒体查询中的 LESS CSS 设置变量?

iphone - 警告消息的范围不起作用

iphone - 仪器在 xcode 4.2 模拟器中不起作用

css - 媒体查询 : Target all high resolutions displays

qt - QGraphicsScene 中 QWidget 的图形错误