使用横向UIAppearance调整UIBarButtonItem的大小(UIEdgeInsets)

时间:2013-02-14 19:12:26

标签: iphone ios uibarbuttonitem uiappearance uiedgeinsets

我正在使用iOS 5中引入的UIAppearance为我的应用中的所有BarButtonItem设置自定义背景图片。

以下代码是我用来设置后退按钮的代码,它在纵向模式下工作正常。但是,当手机旋转到横向并且导航栏调整大小时,按钮根本不会调整大小并在底部被切断。

我认为它会自动执行此操作,因为我将边缘插入设置为不关心垂直调整大小。有什么想法吗?

UIImage *colorViewBBIImage = [[UIImage imageNamed:@"backButton"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 17, 0, 7)]; 

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

我的非视网膜图像是30px x 31px。

1 个答案:

答案 0 :(得分:2)

对于横向模式,只需使用最后一个参数UIBarMetricsLandscapePhone调用代码的第二行

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:colorViewBBIImage forState:UIControlStateNormal barMetrics:UIBarMetricsLandscapePhone];