我正在尝试在我的设置方法中使用 setBackgroundImage: forBarMetrics:
更改导航栏的背景图像。
问题是图像不适合栏,看起来图像至少拉伸(stretch)了原始大小的两倍...
图片大小为320 x 44...
我尝试将图像重命名为@2x,但它并没有改变任何东西......
我尝试将此图像分配给 navigationItem.titleView
但 View 在边缘被切断了...
有没有人提示如何设置图像以使其不会被拉伸(stretch)?
UINavigationBar *naviBar = [self.navigationController navigationBar];
UIImage *img = [UIImage imageNamed:@"NavBar02@2x.png"];
[naviBar setBackgroundImage:img forBarMetrics:UIBarMetricsDefault];
提前致谢
最佳答案
好的,我终于明白了!
问题:导航栏采用 320 x 44 像素的图像,因为 iPhone 中的每个点都是 2 像素,如果您使用导航栏的点,您使用的图像看起来会被拉伸(stretch) 4 倍(2x 代表 y, x 坐标为 2x)。
要解决它,只需将文件扩展名@2x 添加到您的图像文件(例如 yourImgName@2x.png)。在拖入 Xcode 之前,您必须重命名它!如果您尝试在 Xcode 中重命名它,它将不起作用。
附言。不要在你的代码中包含@2x,就像这样的文件名 [UIImage imageNamed: @"yourImgName.png"]
希望对你有帮助
关于ios - 导航栏背景图片太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11576966/