UITabBarItem图像大小

use*_*282 13 uitabbaritem uitabbar ios

我正在为我的UITabBar制作图像.我制作的尺寸为60x60,因为这就是视网膜屏幕的用途.但是,当我使用该尺寸时,它在条形图中显示得太大,因此您只能看到部分图像.当我将其降低到30x30时,它可以工作,但是这个尺寸应该用于非视网膜显示器.当我使用60x60时,为什么它不能正常显示?

tha*_*rem 11

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


rad*_*ual 6

当iOS正在寻找标准分辨率图像时,您正在获得此行为,因为您提供的是高分辨率图像.

iOS会自动为您选择合适的图像大小,具体取决于访问设备的分辨率.因此,您将负责为非视网膜设备提供"标准分辨率"图像,为视网膜显示器提供"高分辨率"图像.在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)
Run Code Online (Sandbox Code Playgroud)

然后,当你在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"
Run Code Online (Sandbox Code Playgroud)

您可以通过Apple Developer's Site:Optimizing for High Resolution了解有关该主题的更多信息