UITabBarItem图像尺寸

18

我正在为我的UITabBar制作图片。我将它们制作成60x60的尺寸,因为这是视网膜屏幕使用的大小。然而,当我使用这个尺寸时,在选项卡栏中显示出来太大了,所以你只能看到图像的一部分。当我将其缩小到30x30时,它可以正常显示,但这个大小应该是非视网膜显示器使用的。为什么在我使用60x60时它不能正确显示?


7
请确保你的60x60像素的视网膜图片文件名中含有"@2x"后缀。 - rmaddy
可能是重复的问题:iOS7 Tabbar图标太大 - sam_smith
2个回答

13

你可能需要将视网膜图片重命名为imagename@2x.png


7

您遇到此问题的原因是提供了高分辨率图像,而iOS正在寻找标准分辨率图像。

iOS会根据设备的分辨率自动选择适当的图像尺寸。因此,您需要为非Retina设备提供“标准分辨率”图像,并为Retina显示器提供“高分辨率”图像。在iOS中,您可以在文件名末尾但扩展名之前添加“@2x”,以此来实现这一点,例如:

my-image.png     // for non-retina displays (Ex: 30x30 dpi)
my-image@2x.png  // for retina displays (Ex: 60x60 dpi)
my-image@3x.png  // for retina displays(plus editions) (Ex: 90x90 dpi)

当您在XCode项目中引用文件时,只需提供标准分辨率的文件名(例如,“my-image.png”),如果访问设备具有视网膜显示屏,则XCode会自动为您选择带有“@2x”后缀的文件。 这非常方便,因为它使我们开发人员无需检测设备是否具有视网膜显示屏,以及需要提供哪个图像。

这里是一个代码示例:

// Select an image named "my-image.png"
UIImage *img = [UIImage imageNamed:@"my-image.png"];

// If the device this code is run on is a retina device,
// then Xcode will automatically search for "my-image@2x.png" and "my-image@3x.png"
// otherwise, it will use "my-image.png"

您可以通过苹果开发者网站了解更多相关信息:优化高分辨率


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