2012-06-17 69 views
0

我想使用iOS 5 UIAppearance API自定义UINavigationBar的后退按钮。我想用的图片是这样的:https://www.dropbox.com/s/ce83rw0e3vs9dwo/bt-back.png,代码如下:UIEdgeInsets调整大小后退按钮

// Customize back button items differently 
UIEdgeInsets aInset = UIEdgeInsetsMake(10, 10, 10, 10); 
UIImage *buttonBack30 = [[UIImage imageNamed:@"bt-back.png"] resizableImageWithCapInsets:aInset]; 
UIImage *buttonBack24 = [[UIImage imageNamed:@"bt-back.png"] resizableImageWithCapInsets:aInset]; 
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:buttonBack30 forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:buttonBack24 forState:UIControlStateNormal barMetrics:UIBarMetricsLandscapePhone]; 

现在,该代码的输出如下:http://i.imgur.com/X6QBK.png

我知道我必须设置UIEdgeInsets到适当的价值,但我正在阅读文档,似乎只有保留边缘而不是中心,女巫似乎是我需要做的事情。

有什么办法可以保留中心而不是边缘?如果不是,我有什么尺寸来生成PNG,所以iOS不会延伸它?

非常感谢

回答

0

您可以使用方法

- (UIImage *)backButtonBackgroundImageForState:(UIControlState)state 
    barMetrics:(UIBarMetrics)barMetrics 

检索后退按钮的背景图片,检索其size属性,然后用这个大小,以使您的自定义形象?

+0

不,它没有工作...每次都必须手动设置后退按钮 –