1

我使用appearanceUIBarButtonItem 的方法来自定义后退按钮的背景图像,但是在 iPhone Retina 显示屏上,我在使用图像时看到了一个奇怪的问题。

这是非 Retina 后退按钮的示例;你会看到它看起来不错:

在此处输入图像描述

但是,Retina 版本看起来不太好。看起来好像图像的顶部几个像素重新出现在下面:

在此处输入图像描述

其他人以前见过这个吗?你怎么修好它的?

这是我在 appDelegate 中用于自定义 UIBarButtonItem 的后退按钮的代码:

UIImage *backButton = [[UIImage imageNamed:@"backButton"] resizableImageWithCapInsets:UIEdgeInsetsMake(5, 15, 5,5)];

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButton forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
4

2 回答 2

2

弄清楚了。我的图像只有 27 像素高;它应该是 30 像素高。

我没有注意到我的矩形 UIBarButtonItem 图像上的问题,因为矩形可以毫无问题地重新缩放 --- 但是对于一个尖的 UIBarButtonItem 图像,你不能重新缩放而不在尖箭头的左侧显示奇怪的伪影。

tl;dr: 使您的 UIBarButtonItem 图像分别为 1x 和 @2x 尺寸的 30 和 60 像素高。

于 2012-03-18T23:55:05.957 回答
0

以下代码来自我的项目,我没有问题。尝试使用下面的代码片段

UIImage* blueBack = [UIImage imageNamed:@"back.png"];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:blueBack forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
于 2013-12-26T08:12:29.203 回答