如何删除自定义左右 UINavigationBar 项目左右的水平填充?iOS 默认设置的填充点似乎约为 10 点。
我正在自定义左右导航栏按钮(我已经放弃尝试设置自己的backButtonItem,所以我只使用leftBarButtonItem)。
在任何一种情况下(左或右),按下这些自定义按钮都表明 Apple 似乎在 leftBarButtonItem 的左侧和 rightBarButtonItem 的右侧保留了一些填充;无论我制作 UIButton 的自定义背景和图像属性有多宽,我都将其放置在左/右栏按钮项内作为其自定义视图。
由于 UIBarButtonItems 没有我可以访问的“框架”,因此我不能像普通 UIViews 那样将它们定位在它们的超级视图中。
有关如何删除此默认填充的任何建议?请参阅所附的屏幕截图以查看我试图减小到零宽度的位。在屏幕截图中,加号图标似乎向右移动,因为我给了它一个插图;但是突出显示的背景图像,也可能使用该插图,在其右侧被剪裁)。
参见图片:https ://skitch.com/starbaseweb/rj2e5/ios-simulator
作为参考,这是我创建自定义 UIBarButtonItem 的方式(在这种情况下,它是右键):
- (UIBarButtonItem *)customAddButtonItemWithTarget:(id)target action:(SEL)action {
UIButton *customButtonView = [UIButton buttonWithType:UIButtonTypeCustom];
customButtonView.frame = CGRectMake(0.0f, 0.0f, 45.0f, 44.0f);
[customButtonView setBackgroundImage:
[UIImage imageNamed:@"bgNavBarButton-OutsideRight-Normal.png"]
forState:UIControlStateNormal];
[customButtonView setBackgroundImage:
[UIImage imageNamed:@"bgNavBarButton-OutsideRight-Highlighted.png"]
forState:UIControlStateHighlighted];
[customButtonView setImage:
[UIImage imageNamed:@"bgNavBarButton-Add-Normal.png"]
forState:UIControlStateNormal];
[customButtonView setImage:
[UIImage imageNamed:@"bgNavBarButton-Add-Highlighted.png"]
forState:UIControlStateHighlighted];
[customButtonView addTarget:target action:action
forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *customButtonItem = [[[UIBarButtonItem alloc]
initWithCustomView:customButtonView] autorelease];
[customButtonView setImageEdgeInsets:UIEdgeInsetsMake(0.0f, 10.0f, 0.0f, 0.0f)];
//customButtonItem.imageInsets = UIEdgeInsetsMake(0.0f, 10.0f, 0.0f, 0.0f);
return customButtonItem;
}