如何在iOS中使用正常和视网膜显示图标



如何在iOS中正确使用标准和视网膜显示图标?我是否需要检测设备的分辨率?如果有,最好的方法是什么?我需要做类似下面的事情吗?

UINavigationBar *navbar... 
NSString *imageName;
if (isRetinaDisplay)
{
    imageName = @"hello@2x.png";
}
else
{
    imageName = @"hello.png";
}
navbar.tabBarItem.image = [UIImage imageNamed:imageName];

如有任何建议,不胜感激。谢谢你。

不,你没有。iOS将自动检测和使用高分辨率设备上的@2x图像。查看绘图和打印指南了解更多信息。摘录:

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

imageNamed自动为您完成此操作。您所要做的就是为项目中包含的图像使用适当的命名法,imageNamed将根据应用程序运行的设备选择合适的图像。

使用正常图像和视网膜图像的主要问题是您应该注意命名惯例以及图像大小。例如:-如果你的图标大小是52*52,名称是icon.png(正常),那么你的视网膜图像大小和命名约定应该是icon@2x.png 104*104。希望对大家有所帮助。由于

最新更新