在使用LeftBarItems和RightBarItems时,我发现uibarbuttonite填充/间距过大(见下图).UIBarButtonims上使用的图标不包含额外的填充.我想知道是什么原因造成的?
在使用LeftBarItems和RightBarItems时,我发现uibarbuttonite填充/间距过大(见下图).UIBarButtonims上使用的图标不包含额外的填充.我想知道是什么原因造成的?
我用它来删除第一项之前的空间.
然而,它不能在系统项(如UIBarButtonSystemItemAdd
)之间工作,只适用于有图像的uibarbuttonite.
@interface UIBarButtonItem (NegativeSpacer)
+(UIBarButtonItem*)negativeSpacerWithWidth:(NSInteger)width;
@end
@implementation UIBarButtonItem (NegativeSpacer)
+(UIBarButtonItem*)negativeSpacerWithWidth:(NSInteger)width {
UIBarButtonItem *item = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
target:nil
action:nil];
item.width = (width >= 0 ? -width : width);
return item;
}
@end
这样使用:
UIBarButtonItem *item0 = [UIBarButtonItem negativeSpacerWithWidth:13];
UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"sidebar.png"]
style:UIBarButtonItemStylePlain
target:vc
action:@selector(sideMenuAction:)];
NSArray* items = @[item0, item1];
[vc.navigationItem setLeftBarButtonItems:items animated:NO];
[vc.navigationItem setLeftItemsSupplementBackButton:YES];