我正在尝试使用设置方法中的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];
提前致谢
答案 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)