面试的时候被面试官问UINavgationContoller上面的UIBarButtonItem之间的间距怎么缩短?
方法如下:
1.定义一个UIToolnar来存放这两个button
2.在这两个button之间添加一个UIBarButtonSystemItemFlexibleSpace类型的button
3.调整UIToolbar的frame,这时就可以直接调整两个button之间的空白间距了
4.将UIToolbar添加到Navigation中即可
//1.创建两个button
UIBarButtonItem *button1 = [[UIBarButtonItem alloc]initWithTitle:@"首页" style:UIBarButtonItemStylePlain target:nil action:nil];
UIBarButtonItem *button2 = [[UIBarButtonItem alloc]initWithTitle:@"我的" style:UIBarButtonItemStylePlain target:nil action:nil];
//2.创建一个灵活空间类型的button
UIBarButtonItem *space = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
//3.初始化toolbar
UIToolbar *rightToolbar = [[UIToolbar alloc]init];
//4.将创建的三个button添加到toolbar中去
rightToolbar.items = [NSArray arrayWithObjects:button1,space,button2, nil];
//5.使button的颜色与导航条的颜色一致
rightToolbar.tintColor = self.navigationController.navigationBar.tintColor;
//6.调整button之间的间距以及大小
rightToolbar.frame = CGRectMake(300, 0, 100, 44);
//7.移除背景
rightToolbar.backgroundColor = [UIColor clearColor];
for (UIView *view in [rightToolbar subviews]) {
if ([view isKindOfClass:[UIImageView class]]) {
[view removeFromSuperview];
}
}
//8.添加到navigationbar中
[self.navigationController.visibleViewController.navigationController.navigationBar addSubview:rightToolbar];
//如图所示: