ios开发过程中,往UIToolbar和UINavigationBar中添加的多个UIBarButton距离通常是固定不可以调整的,
比如在UINavigationBar的右侧添加两个以上UIBarButton时,两个UIBarButton加上中间的空白占据了和大一部分的空间,
因而在开发iPhone应用程序时,开发者通常使用UISegmentedControl来替代使用两个button。
其实如果利用一下UIToolbar的一些特性就可以实现对的UIBarButton的间距调整,方法如下:
1.定义一个UIToolbar来存放者两个button
2.在两个Button之间添加一个UIBarButtonSystemItemFlexibleSpace类型的button
3.调整UIToolbar的宽度,这时就可以直接调整两个button之间的空白宽度了
4.将UIToolbar添加到Navigationbar中去即可
其中的第4步,采用早期ios4时候添加多个UIBarButton到UIToolbar和UINavigationBar的方法即可
实现代码如下
代码如下 | 复制代码 |
//button1 UIBarButtonItem *button1 = [[UIBarButtonItem alloc] initWithTitle:@"Button1" style:UIBarButtonItemStyleBordered target:nil action:nil]; //button1 UIBarButtonItem *button2 = [[UIBarButtonItem alloc] initWithTitle:@"Button2" style:UIBarButtonItemStyleBordered target:nil action:nil]; UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; //初始化toolbar UIToolbar *rightToolbar = [[UIToolbar alloc]init]; rightToolbar.items = [NSArray arrayWithObjects:button1,space,button2,nil]; //使button的tint色与导航条一致 rightToolbar.tintColor = self.navigationController.navigationBar.tintColor; //调整宽度使button间距缩小 rightToolbar.frame = CGRectMake(220, 0, 101, 44); //移除背景,用于添加到UIToolbar或UINavigationBar中 rightToolbar.backgroundColor = [UIColor clearColor]; for (UIView *view in [rightToolbar subviews]) { if ([view isKindOfClass:[UIImageView class]]) { [view removeFromSuperview]; } } //添加到navigationbar中 [self.navigationController.visibleViewController |
时间: 2025-01-23 11:59:23