消除条形左侧和leftBarButtonItem之间的UINavigationBar上的空间

时间:2012-08-10 21:16:15

标签: ios uinavigationbar

我目前有一个UINavigationBar的leftBarButton的按钮图像。有没有办法消除这个按钮和UINavigationBar左边缘之间的空间?我想过为UINavigationBar的背景制作一个自定义图像,但我希望能够使用在其他屏幕上生成的后退按钮。想法?

3 个答案:

答案 0 :(得分:0)

导航栏本身的布局逻辑将要尝试在左侧维护该空间。

您可以尝试在设置导航项(UIBarButtonItem initWithCustomView :)时指定自定义视图,并传入具有负x原点的视图 - 但我认为导航栏会忽略任何此类原点。 (您也可以尝试保留对该视图的引用,并在导航栏完成其布局后将其移动到左侧)

另一种选择是尝试创建自己的自定义导航栏 - 可能是将自定义视图放在导航栏的中心,并将其拉伸以覆盖宽度和宽度。酒吧的高度。

答案 1 :(得分:0)

试试这个,它对我有用:

CGRect frame = self.navigationController.navigationBar.frame;
frame.origin.x = -10;
self.navigationController.navigationBar.frame = frame;

基本上,将导航栏x坐标设置为负值而不是条形项。

答案 2 :(得分:0)

在ios7中你可以添加一个虚拟的barbuttonitem 为了修复左侧空间,你应该首先添加虚拟,直到最后

左边的示例,您应该在设置原始项目后添加此项,或者如果您使用情节提要设置按钮,则应在viewdidload中添加。

NSMutableArray *buttons = [[NSMutableArray alloc] init];
UIBarButtonItem *spacerItem = [[UIBarButtonItem alloc] init];
[buttons addObject:spacerItem];
for(UIBarButtonItem *item in self.leftBarButtonItems){
    [buttons addObject:item];
}
[self setLeftBarButtonItems:[NSArray arrayWithArray:buttons] animated:NO];