gpt4 book ai didi

ios - 如何处理 Iphone 5 视网膜显示检查?

转载 作者:行者123 更新时间:2023-11-28 22:06:09 25 4
gpt4 key购买 nike

在 Iphone 5 中运行应用程序时,我发现 [UIImage imageNamed] 没有检测到 iphone 或 ipod 5 的视网膜显示。我的应用程序中的所有内容都有 2 个图像,标准一个,视网膜一个名为@2x。现在,我曾经在 Storyboard 中或以编程方式选择常规图像,因为我认为它会自动获得正确的图像,就像模拟器一样,但事实证明,Iphone 5 不会。因此,据我了解,我必须使用以下代码手动检查视网膜是否存在:

if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] &&
([UIScreen mainScreen].scale == 2.0)) {
// Retina display
NSLog(@"RETINA");
} else {
// non-Retina display
NSLog(@"NON-RETINA");
}

现在,由于我将经常使用这段代码,有没有办法避免重复使用它?也许创建一个协议(protocol),或者甚至子类化 UIImage?我不确定如何处理这个,我认为这是自动完成的。

最佳答案

如果模拟器可以看到视网膜图像而您的设备没有,则可能是区分大小写的问题。模拟器不关心,但实际设备关心。检查带有和不带有 @2x 的图像名称的大小写差异。

如果这不能解决您的问题(这会很奇怪),您可以通过将此添加到您的 .m 文件来自动执行该方法:

-(BOOL)retinaScreenResolution {
if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] &&
([UIScreen mainScreen].scale == 2.0))
return YES;
else
return NO;

并在您的代码中的任何位置调用它:

if ([self retinaScreenResolution]) {
//YES retina
}
else {
//NO
}

关于ios - 如何处理 Iphone 5 视网膜显示检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23912419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com