iOS中 UIToolBar 技术分享

UIToolBar存在于UINavigationController导航栏控制器中,而且默认被隐藏。当设置UIToolBar显示,或者存在UITabBarController且tabbar被隐藏的时候,toolbar就会显示出来。我们使用UIToolBar是由于它一直显示在屏幕底部,有时候我们需要在屏幕底部添加按钮或提示信息,就不需要另外创建一个UIView或其他视图了。因为创建UIView或其他视图需要适应屏幕尺寸,也会隐藏掉底部的视图显示,造成显示不完整的情况等。

fixbleSpace类型的BarButtonItem  主要用于工具条钮间距的调整.UIBarButtonSystemItem提供了一系列的系统按钮,其中有两个UIBarButtonSystemItemFlexibleSpace和UIBarButtonSystemItemFixedSpace

    这俩不是按钮,而是调整按钮间距用的对象

AppDelegate.m

 self.window.rootViewController = [[[UINavigationController alloc]initWithRootViewController:[RootViewController new]]autorelease];

 /************************** UIToolBar *************************************/

//设置navigationController的toolbar为不隐藏
    self.navigationController.toolbarHidden = NO;
    //设置navigationController的toolbar的背景颜色
    self.navigationController.toolbar.barTintColor = [UIColor orangeColor];

    //下面生成3中常用的UIBarButtonItem 分别为:
    //1. 系统提供的UIBarButtonItem类型
    UIBarButtonItem * item1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(cameraClick:)];

    //2. 自定义显示内容的UIBarButtonItem类型
    UIBarButtonItem * item2 = [[UIBarButtonItem alloc] initWithTitle:@"保存" style:UIBarButtonItemStylePlain target:self action:@selector(collectClick:)];

    UIImage * image = [[UIImage imageNamed:@"pause"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

    //3.自定义图片的UIBarButtonItem类型
    UIBarButtonItem * item3 = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStyleDone target:self action:@selector(imageClick:)];

    //创建一个数组
    NSArray * ary = [NSArray arrayWithObjects:item1, item2, item3, nil];

    //将数组中的内容传递给navigationController的toolbarItems属性
    self.toolbarItems = ary;

/********************* fixbleSpace类型的BarButtonItem **********************/

UIBarButtonItem * item4 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:nil action:nil];

    UIBarButtonItem * item5 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:nil action:nil];

    UIBarButtonItem * item6 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCompose target:nil action:nil];

    UIBarButtonItem * item7 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemReply target:nil action:nil];

//    不写默认靠左侧显示
    //    NSArray * ary = [[NSArray alloc] initWithObjects: item4, item5, item6, item7,  nil];

    //自动调间距
    NSArray * ary = [[NSArray alloc] initWithObjects: item4, self.flexibleSpace, item5, self.flexibleSpace, item6, self.flexibleSpace, item7, nil];

    //靠左侧显示
    //    NSArray * ary = [[NSArray alloc] initWithObjects: item4, item5, item6, item7, self.flexibleSpace, nil];

    //靠右侧显示
    //    NSArray * ary = [[NSArray alloc] initWithObjects: self.flexibleSpace, item4, item5, item6, item7, nil];

    self.toolbarItems = ary;

方法实现部分:

- (void)cameraClick:(UIBarButtonItem *)sender
{
    NSLog(@"第一个被点击");
}

- (void)collectClick:(UIBarButtonItem *)sender
{
    NSLog(@"第二个被点击");
}

- (void)imageClick:(UIBarButtonItem *)sender
{
    NSLog(@"第三个被点击");
}
时间: 2024-11-02 03:26:48

iOS中 UIToolBar 技术分享的相关文章

iOS中 UIProgressView 技术分享

 UIProgressView 继承自UIView,用来显示进度的,如音乐,视频的缓冲进度,文件的上传下载进度等.让用户知道当前操作完成了多少,离操作结束还有多远 AppDelegate.m ProgressViewController *progressVC = [[ProgressViewController alloc]init]; self.window.rootViewController = progressVC; [progressVC release]; ProgressView

[技术分享]浅谈3D Touch 在Xamarin.iOS上的应用 (下)

问题描述 接定义静态QuickActionsQuickActions的行为可以是一个或者多个,我们需要在Info.plist中声明他们,代码如下<key>UIApplicationShortcutItems</key><array><dict><key>UIApplicationShortcutItemIconType</key><string>UIApplicationShortcutIconTypeSearch<

iOS时钟开发案例分享_IOS

本文实例为大家介绍了iOS时钟开发过程,供大家参考,具体内容如下 思路就是利用CALayer的隐式动画来实现.因为UIView的非根层也就是手动创建的layer在其属性发生变化时会默认会产生动画效果,这些属性也叫作可动画属性.比如bounds.backgroundColor.position. 时钟里面表盘就是一个UIView,而三根针就是三个手动创建的layer. 先在storyboard上弄一个UIImageView,设置表盘图片 然后在viewDidLoad中初始化三根针,并设置定时器,获

iOS中SQLite数据库使用详解

使用SQLite数据库 创建数据库 创建数据库过程需要3个步骤: 1.使用sqlite3_open函数打开数据库: 2.使用sqlite3_exec函数执行Create Table语句,创建数据库表: 3.使用sqlite3_close函数释放资源. 这个过程中使用了3个SQLite3函数,它们都是纯C语言函数,通过Objective-C去调用C函数当然不是什么问题,但是也要注意Objective-C数据类型与C数据类型兼容性问题. 下面我们使用SQLite技术实现备忘录案例,与属性列表文件实现

iOS网络编程入门:iOS中的Socket编程

使用Socket进行C/S结构编程,连接过程 服 务器端监听某个端口是否有连接请求.服务器端程序处于堵塞状态,直到客户端向服务器端发出连接请求,服务器端接受请求程序才能向下运行.一旦连接建立起 来,通过Socket可以获得输入输出流对象.借助于输入输出流对象就可以实现与客户端的通讯,最后不要忘记关闭Socket和释放一些资源(包括:关闭 输入输出流). 客户端流程是先指定要通讯的服务器IP地址.端口和采用的传输协议(TCP或UDP),向服务器发出连接请求,服务器有应答请求之后,就会建立连接.之后

通用社区登陆组件技术分享(开源)下篇:OAuth 源码下载及原理解说

上节内容: 1:通用社区登陆组件技术分享(开源)上篇:OAuth 授权登陆介绍 2:通用社区登陆组件技术分享(开源)中篇:OAuth 登陆组件流程及组件集成方法   本节内容: 1:简述组件设计的过程及思路及部分重点源码讲解 2:源码下载 3:扩展机制说明  附源码截图:等会看以下思路时,可以对照着看:   一:简述组件设计的过程及思路   1:为什么想到弄成组件? 当重复的代码或相似的事件>=2个时,我都会想一下,是否还可能有第3个,第4个相近的,如果有,就会统一处理,组件就是设计的再通用一些

通用社区登陆组件技术分享(开源)中篇:OAuth 登陆组件流程及组件集成方法

上节内容:通用社区登陆组件技术分享(开源)上篇:OAuth 授权登陆介绍   本节包括以下内容: 1:第三方社区账号登陆的授权流程 2:OAuth2 组件的下载及web.config配置 3:OAuth2 组件的5行代码编写流程 4 :总结与下节内容预告     一: 第三方社区账号登陆的授权流程 1:首先从这里开始:用户进入登陆界面   2:用户点击用新浪微博或QQ登陆,系统跳到第三方授权页面,(QQ示例授权界面) 3:确定授权后,第三方跳转返回你的回调页(在应用里设置),通常仍是系统登陆页面

谈谈公司内部的技术分享

    这段时间,为了促进程序同事间技术氛围,在公司内部组织开展技术分享会.形式很简单,每两周也就是半个月,进行一次技术分享:分享人由组员顺序安排:题材不限,可以是自己熟悉的技术,比如说服务端的开发者,分享后端定时器,消息队列等等,前端的开发者分享加载的模式,MVC模式等等,可以是一些通用的技术,比如数据结构,算法,代码风格,Effective 系列,调试技巧等,甚至可以是经典书的读后感等等,抑或是最近大家在研究一个开源的项目,也可以跟大家讲一下这个开源项目的框架:或许有些人利用业余时间做了一个

iOS 中正则表达式使用方法汇总

iOS 中正则表达式使用方法汇总 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 某种语言中的正则工具算是木桶,而这个工具处理的是正则表达式,算是水,那么水很多,无论是淡水还是咸水,或是雨水,至