如何在iOS中正确使用标准和视网膜显示图标?我需要检测设备的分辨率吗?如果是这样,执行此操作的最佳过程是什么。我是否需要执行以下操作?

UINavigationBar *navbar...

NSString *imageName;

if (isRetinaDisplay)
{
    imageName = @"[email protected]";
}
else
{
    imageName = @"hello.png";
}

navbar.tabBarItem.image = [UIImage imageNamed:imageName];

任何建议,将不胜感激。谢谢。

最佳答案

不,你没有。 iOS将自动在高分辨率设备上检测并使用@2x图像。查看the Drawing and Printing Guide了解更多信息。摘录:

在具有高分辨率屏幕的设备上,imageNamed:imageWithContentsOfFile:initWithContentsOfFile:方法自动使用名称中的@2x修饰符查找所请求图像的版本。如果找到一个,它将加载该图像。如果不提供给定图像的高分辨率版本,则该图像对象仍会加载标准分辨率的图像(如果存在)并在绘制过程中对其进行缩放。

10-08 17:03