2

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

4

3 回答 3

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];
于 2014-02-26T16:40:49.250 回答
0

导航栏本身的布局逻辑将要尝试保持左侧的空间。

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

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

于 2012-08-10T23:08:31.843 回答
0

试试这个,它对我有用:

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

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

于 2013-01-01T08:31:28.470 回答