如何在iOS中正确使用标准和视网膜显示图标?我需要检测设备的分辨率吗?如果是这样,那么执行此操作的最佳方法是什么。我是否需要做类似以下的事情?
UINavigationBar *navbar...
NSString *imageName;
if (isRetinaDisplay)
{
imageName = @"hello@2x.png";
}
else
{
imageName = @"hello.png";
}
navbar.tabBarItem.image = [UIImage imageNamed:imageName];
任何建议将不胜感激。谢谢。
答案 0 :(得分:7)
不,你没有。 iOS将自动检测并使用高分辨率设备上的@2x
图像。有关详细信息,请查看the Drawing and Printing Guide。摘录:
在具有高分辨率屏幕的设备上,
imageNamed:
,imageWithContentsOfFile:
和initWithContentsOfFile:
方法会自动查找所请求图片的版本,其中包含@2x
修饰符名称。如果找到一个,它会加载该图像。如果您未提供给定图像的高分辨率版本,则图像对象仍会加载标准分辨率图像(如果存在)并在绘图期间对其进行缩放。
答案 1 :(得分:1)
imageNamed会自动为您完成此操作。您所要做的就是对项目中包含的图像使用正确的命名法,imageNamed将根据您的应用程序运行的设备选择合适的图像。
答案 2 :(得分:1)
使用普通和视网膜图像的主要原因是你应该注意命名 约定以及图像大小。 示例: - 如果您的图标大小为52 * 52且name为icon.png(正常),则您的视网膜图像大小和命名约定应类似于icon@2x.png 104 * 104。 希望它可能会有所帮助。 感谢