导航栏背景图像太大了

Chr*_*Lin 4 xcode uinavigationbar uinavigationcontroller ios

我正在尝试使用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];
Run Code Online (Sandbox Code Playgroud)

提前致谢

Chr*_*Lin 14

好吧,我终于明白了!

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

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

PS.不要在代码中包含@ 2x,只需要包含类似的文件名[UIImage imageNamed:@"yourImgName.png"]

希望这可以帮助