UINavigationBar的自定义样式工作不正常

我正在使用此代码为所有UINavigationBars设置自定义背景图像。 问题是最终的图像看起来不是视网膜大小。 我研究过的UINavigationBars是640x88px。 这就是我的UINavigationBar.png的确切尺寸,但是我只在iPhone Sim(视网膜)上看到320x44px,在我的iPhone 4上也是视网膜。

设置图像的代码:

UIImage *background = [UIImage imageNamed:@"UINavigationBar.png"]; [[UINavigationBar appearance] setBackgroundImage:background forBarMetrics:UIBarMetricsDefault]; 

以下是插图的截图:

在这里输入图像说明

(不同的是Photoshop中没有底线,我只能看到iPhone 5模拟器(Retina)中的一半图像)

我的问题是为什么发生这种情况,我该如何解决? 谢谢。

您需要有两个不同大小和名称的.png文件,但在视网膜显示文件中添加了@ 2x。
例如,

文件1支持常规显示:
大小 – 320×44,
name-UINavigationBar.png

文件2支持视网膜显示:
大小 – 640×88,
名字 – UINavigationBar@2x.png

在您的代码中,您总是使用UINavigationBar.png,根据硬件,设备将自动识别使用的女巫文件。