如何在iOS中使用普通和Retina显示屏图标

3

如何在iOS中正确使用标准和Retina显示的图标?我需要检测设备的分辨率吗?如果需要,那么最好的方法是什么?我需要类似于以下操作吗?

UINavigationBar *navbar... 

NSString *imageName;

if (isRetinaDisplay)
{
    imageName = @"hello@2x.png";
}
else
{
    imageName = @"hello.png";
}

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

任何建议将不胜感激。谢谢。
3个回答

7
不需要。iOS会自动检测并在高分辨率设备上使用@2x图像。请查看绘图和打印指南获取更多信息。其中有一段摘录如下:
在具有高分辨率屏幕的设备上,imageNamed:imageWithContentsOfFile:initWithContentsOfFile:方法会自动查找带有@2x修饰符的请求图像版本的图像。如果找到了这样的图像,则会加载该图像而不是标准分辨率图像。如果您没有提供给定图像的高分辨率版本,则图像对象仍会加载标准分辨率图像(如果存在),并在绘制时进行缩放。

1
使用普通和视网膜图片的主要问题是您应该注意命名约定以及图像大小。 例如:如果您的图标大小为52 * 52并且名称为icon.png(用于普通),则您的视网膜图像大小和命名约定应该类似于icon@2x.png 104 * 104。 希望这可能会有所帮助。 谢谢。

1

imageNamed会自动为您完成这项工作。您所需要做的就是在项目中使用正确的图像命名规范,imageNamed将根据您的应用程序运行的设备选择合适的图像。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接