Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UINavigationBar的自定义样式无法正常工作_Ios_Xcode_Uinavigationbar_Photoshop - Fatal编程技术网

Ios UINavigationBar的自定义样式无法正常工作

Ios UINavigationBar的自定义样式无法正常工作,ios,xcode,uinavigationbar,photoshop,Ios,Xcode,Uinavigationbar,Photoshop,我正在使用此代码为所有UINavigationBars设置自定义背景图像。问题是,最终的图像似乎不是视网膜大小。我研究过UINavigationBars是640x88px。这是我的UINavigationBar.png的精确尺寸,但我在iPhone Sim卡(视网膜)和iPhone 4(也是视网膜)上只能看到320x44px 设置图像的代码: UIImage *background = [UIImage imageNamed:@"UINavigationBar.png"]; [[UINaviga

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

设置图像的代码:

UIImage *background = [UIImage imageNamed:@"UINavigationBar.png"];
[[UINavigationBar appearance] setBackgroundImage:background forBarMetrics:UIBarMetricsDefault];
以下是用于说明的屏幕截图:

(不同之处在于,在Photoshop中没有底暗线。在iPhone5模拟器(视网膜)中,我只能看到一半的图像。)


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

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

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

视网膜显示支持文件2:
尺寸-640x8,
姓名-UINavigationBar@2x.png

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