iOS开发之UIToolbar和UINavigationBar的UIBarButtonItem的距离调整

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.navigationController.navigationBar addSubview:rightToolbar];


--------------------------------------------------------------------------------------
- 版权声明:
- 如在本页面内无特别说明,本文内容均为[李大仁博客]原创,本文版权归[李大仁博客]所有。
- 欢迎转载,转载请务必在文章页面明显位置提供原文链接并注明出处。欢迎您在转载本文时保留本段声明。
- 文章标题: ios开发之UIToolbar和UINavigationBar的UIBarButton的距离调整
- 独立博客: 李大仁博客
- 永久链接:http://www.lidaren.com/archives/777
--------------------------------------------------------------------------------------
以上内容由博客自动发布工具自动发布,最终显示内容和效果会与原文内容有所偏差,敬请谅解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值