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

时间: 2025-01-23 11:59:23

iOS UIToolbar和UINavigationBar的UIBarButtonItem的距离调整的相关文章

UIToolbar UINavigationController UINavigationBar UIBarButtonItem

--------------------------------------------------------------------------------UIBarButtonItem-------------------------------------------------------------------------------- 1:  UIBarButtonItem 隐藏的方式 [self.btnPunctuation setWidth:0]; 2:  UIBarButto

iOS - UIToolbar

前言 NS_CLASS_AVAILABLE_IOS(2_0) __TVOS_PROHIBITED @interface UIToolbar : UIView <UIBarPositioning> @available(iOS 2.0, *) public class UIToolbar : UIView, UIBarPositioning 工具条控件 UIToolbar 用做工具条按钮项(UIBarButtonItem)的容器,可以盛放一个或者多个工具条按钮项,一般放置在界面顶部或者底部.如果

苹果iOS 7 beta 3测试版发布 修复漏洞调整界面

[科技讯]7月10日消息,苹果在7月8日推出了http://www.aliyun.com/zixun/aggregation/13372.html">iOS 7beta 3测试版,这次更新内容主要是针对iOS 7 beta 2中出现的错误修改和界面调整,下面来看看iOS 7 beta 3有哪些更新与修改吧! 在iOS 7 beta 3下载APP时,等待期间的显示,将以原APP图像变暗显示,下载期间的显示图像则以图像逐渐浮现显示,让用户知道目前​​APP的安装进度. 在iOS 7 beta

关于ios环信demo中通讯录数据如何调整,如何改成自定义的通讯录?

问题描述 [[[EaseMob sharedInstance] chatManager] buddyList] 看到代码来源于这个对象,可是没找到何时给这个赋值,是不是要自定义 通讯录的话从这儿入手 换成自己的数据 就可以了? 解决方案 不太明白你说给这个赋值是什么意思.环信这边不提供任何用户属性.你要处理头像昵称之类的,需要你在自己的服务器维护.自定义的数据,也是你们自己维护.简单点说,可以把环信id当做你们用户的一个属性保存,聊天通过这个属性进行.

iOS开发系列--网络开发

概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博.微信等,这些应用本身可能采用iOS开发,但是所有的数据支撑都是基于后台网络服务器的.如今,网络编程越来越普遍,孤立的应用通常是没有生命力的.今天就会给大家介绍这部分内容: Web请求和响应 使用代理方法 简化请求方法 图片缓存 扩展--文件分段下载 扩展--文件上传 NSURLSession 数据请求 文件上传 文件下载 会话 UIWebView 浏览器实现 UIWebView与页面交互 网络状态 目 录 Web请求和响应 使用代理

ios网络开发

概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博.微信等,这些应用本身可能采用iOS开发,但是所有的数据支撑都是基于后台网络服务器的.如今,网络编程越来越普遍,孤立的应用通常是没有生命力的.今天就会给大家介绍这部分内容: Web请求和响应 使用代理方法  简化请求方法  图片缓存  扩展--文件分段下载  扩展--文件上传  NSURLSession 数据请求  文件上传  文件下载  会话 UIWebView 浏览器实现  UIWebView与页面交互  网络状态 目 录 Web

部分应用已开始接受iOS 6测试

据国外媒体报导,有开发者发现其下应用已经开始接受iOS 6的测试,开发者从软件分析处收集到的一系列操作系统版本当中看到了iOS 6的名字.虽然现在距离WWDC 2012还有超过三周的时间,但是很多苹果用户已经迫不及待地想要在大会上看到可以再一次改变一切的产品了.无论是硬件还是软件--比如更为轻薄的 MacBook Pro和内容更为丰富的iOS 6,我们都希望能够在6月11日那天看到眼前一亮的 事物.对于新款MacBook Pro来说,目前还很难拿出可令人信服的证据.不过,我们已经开始见到iOS

iOS史上最大漏洞出现 运营商罕见发公告提醒升级

近日,上海电信在其网上营业厅发出一则"重要提醒:iPhone用户请注意!"的公告,建议用户尽快升级自己的iPhone操作系统,避免个人隐私泄露等安全问题的发生.运营商发公告提醒用户更新iOS版本,这是比较少见的.运营商之所以这样做,是因为这次iOS遭遇了其史上最大的系统漏洞,用户如果不及时更新,个人信息有可能被窃取,通话.社交聊天等信息可能被截获,更可怕的是iPhone手机还可能变成被不法分子控制的远程音频视频录制器. 8月底,苹果推送了iOS 9.3.5版本更新,这距离iOS 9.3

《iOS 9 开发指南》——第6章,第6.5节创建一个界面

6.5 创建一个界面iOS 9 开发指南图片 25 知识点讲解:光盘:视频知识点第6章创建一个界面.mp4在本节的内容中,将详细讲解如何使用Interface Builder创建界面的方法.在开始之前,需要先创建一个Empty.storyboard文件. 6.5.1 对象库添加到视图中的任何控件都来自对象库(Object Library),从按钮到图像再到Web内容.可以依次选择Xcode菜单View→Utilities→Show Object Library(Control+Option+Co