0

我在 ios5.1 和 ios6.0 上有两种不同的行为

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:offBackButton forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

在 iOS 6.0 上一切正常 在 iOS 6.0 上

在 iOS5.1 上??? 在 iOS 5.1 上???

有什么我做得不好的吗?

4

1 回答 1

0

您需要指定一个可拉伸UIImage的,UIEdgeInsets如下所示:

UIImage *normalStateImage = [[UIImage imageNamed:@"image"] resizableImageWithCapInsets:UIEdgeInsetsMake(10.0, 10.0, 10.0, 10.0)];
UIImage *pressedStateImage = [[UIImage imageNamed:@"image-pressed"] resizableImageWithCapInsets:UIEdgeInsetsMake(10.0, 10.0, 10.0, 10.0)];

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:normalStateImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:pressedStateImage forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];

iOS 6.x 足够聪明地确定图像大小并根据它进行拉伸。

于 2013-01-11T16:05:03.893 回答