我已经能够通过故事板拥有一个带有嵌入式 uibutton 的自定义 UIBarButtonItem。这是地图按钮。查看此屏幕截图上的参数,我不得不使用背景属性而不是 Image。
但是当我尝试以编程方式自定义一些 uibarbuttons 时,按钮会变小。当我使用 Image 属性时,我使用地图按钮得到了相同的结果。
这是我为后退按钮编写的代码,
UIImage *backButtonImage = [[UIImage imageNamed:@"Retour.png"]resizableImageWithCapInsets:UIEdgeInsetsMake(21, 21, 21, 21)] ;
backButtonImage = [backButtonImage stretchableImageWithLeftCapWidth:0 topCapHeight:0];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, backButtonImage.size.width, backButtonImage.size.height);
[button setBackgroundImage:backButtonImage forState:UIControlStateNormal];
[button setBackgroundImage:backButtonImage forState:UIControlStateHighlighted];
[button addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithCustomView:button] ;
self.navigationItem.leftBarButtonItem = backBarButton;
我尝试使用或不使用 resizableImageWithCapInsets、stretchableImageWithLeftCapWidth,结果相同(后退按钮的大小应与地图按钮的大小相同)
我也尝试了 iOS 5 setBackButtonBackgroundImage 方法,但按钮根本没有自定义。