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

设置图像的代码:

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


这是用于说明的屏幕截图:



(不同之处在于,没有像Photoshop一样存在底部暗线。我只能在iPhone 5 Simulator(视网膜)中看到一半的图像)

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

最佳答案

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

常规显示支持的文件1:
尺寸-320x44,
名称-UINavigationBar.png

文件2用于视网膜显示支持:
尺寸-640x88,
名称[email protected]

在您的代码中,您始终使用UINavigationBar.png,根据硬件,设备将自动知道要使用的文件。

关于ios - UINavigationBar的自定义样式无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11886644/

10-14 01:19