导航栏背景图像太大了

时间:2012-07-20 09:50:53

标签: ios xcode uinavigationcontroller uinavigationbar

我正在尝试使用设置方法中的setBackgroundImage: forBarMetrics:更改导航栏的背景图像。

问题是图像不适合条形,看起来图像拉伸至少是原始尺寸的两倍......

图像尺寸 320 x 44 ......

我尝试将图片重命名为@ 2x,但它没有改变任何东西......

我尝试将此图片指定给navigationItem.titleView,但视图在边缘被切断了......

是否有人提示如何设置图片以使其不会拉伸?

UINavigationBar *naviBar = [self.navigationController navigationBar];
UIImage *img = [UIImage imageNamed:@"NavBar02@2x.png"];
[naviBar setBackgroundImage:img forBarMetrics:UIBarMetricsDefault];

提前致谢

3 个答案:

答案 0 :(得分:14)

好吧我终于明白了!

问题:导航栏采用320 x 44像素的图像,因为iPhone中的每个点都是2像素,如果你使用导航条的点,你使用的图像看起来就像拉伸了4倍(y为2倍, x坐标为2x。

要解决它,只需将文件扩展名@ 2x添加到您的图像文件(例如yourImgName@2x.png)。在拖入Xcode之前必须重命名它!如果您尝试在Xcode中重命名它,它将无法工作。

PS。不要在代码中包含@ 2x,只需要包含文件名 [UIImage imageNamed:@“yourImgName.png”]

希望这会有所帮助

答案 1 :(得分:1)

你应该有两张图片。一个是320x44像素,并命名为NavBar02.png。另一个是640x88像素,名称为NavBar02@2x.png。

iOS将根据设备的分辨率选择合适的图像。

答案 2 :(得分:0)

对于所有图标,apple建议如下。 image sizes for navigation and tab bars.

要调整大小,请在“预览”中打开图像。转到

  

工具 - >调整大小。

希望有所帮助。