我有一个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/