UIEdgeInsets调整后退按钮的大小

时间:2012-06-17 18:22:42

标签: ios uinavigationitem uiappearance

我正在尝试使用iOS 5 UIAppearance API自定义UINavigationBar的后退按钮。我想要使​​用的图像是:https://www.dropbox.com/s/ce83rw0e3vs9dwo/bt-back.png,代码如下:

// 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不会拉伸它?

非常感谢

1 个答案:

答案 0 :(得分:0)

你能使用方法

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

检索后退按钮的背景图片,检索其size属性,然后使用此尺寸来制作自定义图像?