我在 ios5.1 和 ios6.0 上有两种不同的行为
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:offBackButton forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
在 iOS 6.0 上
在 iOS 5.1 上???
有什么我做得不好的吗?
我在 ios5.1 和 ios6.0 上有两种不同的行为
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:offBackButton forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
在 iOS 6.0 上
在 iOS 5.1 上???
有什么我做得不好的吗?
您需要指定一个可拉伸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 足够聪明地确定图像大小并根据它进行拉伸。