4

我正在尝试使用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];

提前致谢

4

3 回答 3

14

好的,我终于明白了!

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

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

附言。不要在你的代码中包含@2x,只是像这样的文件名 [UIImage imageNamed: @"yourImgName.png"]

希望这可以帮助

于 2012-07-25T00:44:30.120 回答
1

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

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

于 2012-07-20T13:01:10.293 回答
0

对于所有图标,苹果推荐以下。导航和标签栏的图像大小。

要调整大小,请在预览中打开您的图像。去

工具 -> 调整大小。

希望有帮助。

于 2018-06-05T01:07:05.587 回答