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