我在目标C中为ios 8编写了一个应用程序,我的导航栏有一个恼人的边缘,导致它向左移动~20个像素为leftBarButtonItem,~20个左边为rightBarButtonItem,如下所示下面的图片。我尝试过使用其他帖子的负片垫片无济于事。有任何想法吗?
(我试图在不使用故事板或xib的情况下这样做。)
以下是代码:
UIToolbar* toolbar_temp = [[UIToolbar alloc] init];
toolbar_temp.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 45);
toolbar_temp.barTintColor= [UIColor blackColor];
NSMutableArray *items = [[NSMutableArray alloc] init];
UIBarButtonItem *spaceItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIImage *camimage = [UIImage imageNamed:@"cancel"];
UIBarButtonItem *customItem = [[UIBarButtonItem alloc] initWithImage:camimage style:UIBarButtonItemStylePlain target:self action:nil];
[items addObject:spaceItem ];
[items addObject:customItem ];
[items addObject:spaceItem ];
[toolbar_temp setItems:items animated:NO];
UIBarButtonItem *allButton = [[UIBarButtonItem alloc] initWithCustomView:toolbar_temp];
self.navigationItem.leftBarButtonItem = allButton;
修改 我不确定这是否给出任何提示,但由于某种原因,这有效:
[[UINavigationBar appearance] setBarStyle:UIBarStyleBlackTranslucent];
虽然这不是:
[self.navigationController.navigationBar setBarStyle:UIBarStyleBlackTranslucent];
解: 我自己最终找到了解决方案。问题是我有一个tabbar控制器,它有一个导航控制器作为其中一个视图。导航控制器只能在viewDidload中设置,而不能在tabbar控制器中调用。解决方案是添加viewDidAppear并在该函数中添加导航控制器。
- (void)viewDidAppear:(BOOL)animated{[self addToolbar];}
谢谢大家的帮助!
答案 0 :(得分:0)
似乎你无法改变minimum margins。您可以将toolbar_temp添加到导航栏:
[self.navigationController.navigationBar addSubview:toolbar_temp];
或添加到self.view:
self.navigationController.navigationBarHidden = YES;
[self.view addSubview:toolbar_temp];