我正在尝试使用以下代码为iOS7上的UIBarButtonItem
中的UIToolbar
设置自定义背景图片。
NSString *imageName = selected ? @"background_view_baritem_selected" : @"background_view_baritem_normal";
UIImage *backgroundImage = [UIImage imageNamed:imageName];
UIImage *resizableBackgroundImage = [backgroundImage resizableImageWithCapInsets:UIEdgeInsetsMake(6, 6, 6, 6)];
[self setBackgroundImage:resizableBackgroundImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
在调试器中,使用QuickLook,我可以验证resizableBackgroundImage
是我所期望的(选中时为圆角蓝色矩形,通常为圆角灰色矩形)。但是,不会出现背景图像。此代码在iOS6上按预期工作(显示背景图像)。 iOS7是否强加了它的意志而不是在这种情况下显示背景,还是我缺少的其他东西?
答案 0 :(得分:2)
至于我,我只能通过使用自定义视图来解决它。 例如,如果您有UIBarButtonItem的出口
@property (nonatomic, weak) IBOutlet UIBarButtonItem *item;
.....在你的代码中你可以做这样的事情:
UIImage *configImage = /* initialize necessary image */;
UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(0,0, item.width, 32)];
[btn setBackgroundImage:configImage forState:UIControlStateNormal];
[btn setTitle:item.title forState:UIControlStateNormal];
btn.titleLabel.font = [UIFont systemFontOfSize:14];
[btn addTarget:item.target action:item.action forControlEvents:UIControlEventTouchUpInside];
item.customView = btn;