一、工具栏控件:UIToolBar:UIView

介绍:
ToolBar工具栏是视图View的属性,可以在工具栏上添加工具栏按钮Bar Button Item(可以是自定义的Custom、也可以是系统自带的BarButtonSystemItem ),视图控制器可以通过工具栏项对视图中内容进行操作。
 
注意事项:
在导航栏控制器中会有一个UIToolBar实例,但默认是隐藏的,如果需要显示,需要通过这个方法将其打开:
在这里需要注意的是,与UINavigationBar类似,导航控制器拥有且只拥有一个UIToolBar实例,但UIToolBar拥有的UIBarButtonItem实例,是由视图控制器进行管理的,如下所示:
 
工具栏风格:

typedef NS_ENUM(NSInteger, UIBarStyle) {

UIBarStyleDefault          = 0,        //默认风格,蓝色文字

UIBarStyleBlack            = 1,        //黑色背景,褐色文字

UIBarStyleBlackOpaque      = 1,    // 纯黑色背景,白色文字

UIBarStyleBlackTranslucent = 2,   // 透明黑色背景,白色文字

};

 
属性:

@property(nonatomic)        UIBarStyle barStyle;    //工具栏风格,默认为蓝色

@property(nonatomic,copy)   NSArray   *items;     //工具栏中的按钮单元,UIBarButtonItem

@property(nonatomic,assign,getter=isTranslucent) BOOL translucent  //是否透明

@property(nonatomic,retain) UIColor *tintColor;        //按钮颜色

@property(nonatomic,retain) UIColor *barTintColor; //工具栏颜色

方法:
※设置工具栏中的按钮单元

- (void)setItems:(NSArray *)items animated:(BOOL)animated;

※设置工具栏的背景图像

- (void)setBackgroundImage:(UIImage *)backgroundImage forToolbarPosition:(UIBarPosition)topOrBottom barMetrics:(UIBarMetrics)barMetrics;

※获取工具栏的背景图像

- (UIImage *)backgroundImageForToolbarPosition:(UIBarPosition)topOrBottom barMetrics:(UIBarMetrics)barMetrics;

※设置工具栏的阴影图像

- (void)setShadowImage:(UIImage *)shadowImage forToolbarPosition:(UIBarPosition)topOrBottom;

※获取工具栏的阴影图像

- (UIImage *)shadowImageForToolbarPosition:(UIBarPosition)topOrBottom ;

二、工具栏按钮控件:UIBarButtonItem:UIBarItem

属性:

@property(nonatomic)         UIBarButtonItemStyle style;            //风格

@property(nonatomic)         CGFloat              width;                // 调节间距宽度

@property(nonatomic,copy)    NSSet               *possibleTitles;   // 标题

@property(nonatomic,retain)  UIView              *customView;       // 自定义视图

@property(nonatomic)         SEL                  action;                // 事件

@property(nonatomic,assign)  id                   target;      // 目标代理

按钮单元风格UIBarButtonItem:

typedef NS_ENUM(NSInteger, UIBarButtonItemStyle) {

UIBarButtonItemStylePlain,        //普通风格

UIBarButtonItemStyleBordered,  //有边界的风格

UIBarButtonItemStyleDone,       //蓝色风格

};

系统自带的按钮:

typedef NS_ENUM(NSInteger, UIBarButtonSystemItem) {

UIBarButtonSystemItemDone,            //确认按钮

UIBarButtonSystemItemCancel,          //取消按钮

UIBarButtonSystemItemEdit,             //编辑按钮

UIBarButtonSystemItemSave,            // 保存按钮

UIBarButtonSystemItemAdd,             //添加按钮

UIBarButtonSystemItemFlexibleSpace,//自动调节间距按钮

UIBarButtonSystemItemFixedSpace,   //自定义调节间距按按钮

UIBarButtonSystemItemCompose,

UIBarButtonSystemItemReply,

UIBarButtonSystemItemAction,

UIBarButtonSystemItemOrganize,

UIBarButtonSystemItemBookmarks,

UIBarButtonSystemItemSearch,

UIBarButtonSystemItemRefresh,

UIBarButtonSystemItemStop,

UIBarButtonSystemItemCamera,

UIBarButtonSystemItemTrash,

UIBarButtonSystemItemPlay,

UIBarButtonSystemItemPause,

UIBarButtonSystemItemRewind,

UIBarButtonSystemItemFastForward,

UIBarButtonSystemItemUndo,

UIBarButtonSystemItemRedo,

UIBarButtonSystemItemPageCurl,

};

主要方法:

※用图像初始化

- (instancetype)initWithImage:(UIImage *)image style:(UIBarButtonItemStyle)style target:(id)target action:(SEL)action;

※图片(包括竖屏和横屏显示不同的图片)

- (instancetype)initWithImage:(UIImage *)image landscapeImagePhone:(UIImage *)landscapeImagePhone style:(UIBarButtonItemStyle)style target:(id)target action:(SEL)action;

※用字符串初始化

- (instancetype)initWithTitle:(NSString *)title style:(UIBarButtonItemStyle)style target:(id)target action:(SEL)action;

※用系统按钮初始化

- (instancetype)initWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem target:(id)target action:(SEL)action;

※用自定义图像初始化

- (instancetype)initWithCustomView:(UIView *)customView;

举例举例如下:

1.在工具栏中全部添加系统自带的按钮单元:

   //创建toolBal导航栏实例
UIToolbar *toolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(, -, , )]; //设置toolBar风格
toolbar.barStyle = UIBarStyleBlack; //将该控件添加到视图中
[self.view addSubview:toolbar]; //创建控件上的按钮单元
UIBarButtonItem *additem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:nil]; UIBarButtonItem *edititem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:nil]; UIBarButtonItem *titleitem = [[UIBarButtonItem alloc]initWithTitle:@"title" style:UIBarButtonItemStyleDone target:self action:nil]; //创建灵活调节按钮单元,设置间隔
UIBarButtonItem *flexibleitem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:(UIBarButtonSystemItemFlexibleSpace) target:self action:nil]; //将按钮单元都添加到数组中
NSArray *items = @[additem,flexibleitem,edititem,flexibleitem,titleitem]; //设置导航栏上的按钮单元
[toolbar setItems:items animated:YES];

演示结果如下:

2.在工具栏上添加图像按钮

   //创建toolBal导航栏实例
UIToolbar *toolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(, , , )]; //设置toolBar风格
toolbar.barStyle = UIBarStyleDefault; //将该控件添加到视图中
[self.view addSubview:toolbar]; //创建控件上的按钮单元
UIBarButtonItem *imageitem1 = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"1.png"] style:UIBarButtonItemStylePlain target:self action:nil]; UIBarButtonItem *imageitem2 = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"2.png"] style:UIBarButtonItemStylePlain target:self action:nil]; UIBarButtonItem *imageitem3 = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"3.png"] style:UIBarButtonItemStylePlain target:self action:nil]; //创建灵活调节按钮单元,设置间隔
UIBarButtonItem *flexibleitem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:(UIBarButtonSystemItemFlexibleSpace) target:self action:nil]; //将按钮单元都添加到数组中
NSArray *items = @[imageitem1,flexibleitem,imageitem2,flexibleitem,imageitem3]; //设置导航栏上的按钮单元
[toolbar setItems:items animated:YES];

演示结果如下:

iOS: 工具栏控件UIToolBar和工具栏按钮控件UIBarButtonItem的使用的更多相关文章

  1. Delphi7 第三方控件1stClass4000的TfcImageBtn按钮控件动态加载jpg图片例子

    Delphi7 第三方控件1stClass4000的TfcImageBtn按钮控件动态加载jpg图片例子 procedure TForm1.Button1Click(Sender: TObject); ...

  2. iOS 开发 中级:UIToolbar,UINavigationBar,UITabBar,UIBarButtonItem,UITabBarItem自定义方法总结

    原文:  http://blog.csdn.net/songrotek/article/details/8692866?utm_source=tuicool 对于UIToolbar,UINavigat ...

  3. Android控件之Button(按钮控件)和ImageButton(图片按钮控件)

    一.Button和ImageButton特证: 1.共同特证: 都可以作为一个按钮产生点击事件 2.不同特证: Button有text的属性,ImageButton没有 ImageButton有src ...

  4. MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box)

    本节继续讲解常用控件--按钮控件的使用. 按钮控件简介 按钮控件包括命令按钮(Button).单选按钮(Radio Button)和复选框(Check Box)等.命令按钮就是我们前面多次提到的侠义的 ...

  5. VS2010/MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box)

    言归正传,鸡啄米上一节中讲了编辑框的用法,本节继续讲解常用控件--按钮控件的使用. 按钮控件简介 按钮控件包括命令按钮(Button).单选按钮(Radio Button)和复选框(Check Box ...

  6. [Xcode 实际操作]三、视图控制器-(9)在Storyboard中使用标签和按钮控件

    目录:[Swift]Xcode实际操作 本文将演示标签和按钮在故事板中的应用. 在欢迎串口中,点击创建一个新的项目[Create a new Xcode project] [Single View A ...

  7. WindowsForm 公共控件 菜单和工具栏

                                                      公共控件   菜单栏 状态栏   布局    公共控件 textbox:  text属性:用于获取或 ...

  8. FineUI第五天---按钮控件

    按钮控件 <x:Button runat="server" ID="按下" Text="按下"></x:Button> ...

  9. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

随机推荐

  1. Leetcode 之Longest Valid Parentheses(39)

    有一定的难度.用堆栈记录下所有左符的位置,用变量记录下孤立右符的位置. int longestValidParentheses(const string& s) { stack<int& ...

  2. Request对象与Response对象

    1.Request对象 Request对象是来获取请求消息的,是由服务器(Tomcat)创建的. Request对象继承体系结构: ServletRequest        --    接口     ...

  3. html,js一个元素做两次不同点击事件

    业务需求:一个按钮,第一次点击,修改页面内容,第二次点击,提交修改. 刚开始,我绑定了第一个click事件,用于让右边的内容可编辑.如:$('#id').click(function(){...}); ...

  4. hdu 3277(二分+最大流+拆点+离线处理+模板问题...)

    Marriage Match III Time Limit: 10000/4000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  5. 判断ios当前的sdk版本的方法

    #if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_6_0 // 当前支持的sdk版本是否低于6.0 //ios 6.0以下的处理 #else //io ...

  6. 利用WINDOWS活动目录提供LDAP的方案

    Windows Server 2008 R2 活动目录服务安装 http://blog.sina.com.cn/s/blog_622de9390100kgv3.html WINDOWS 2008 域控 ...

  7. Linux下文件属性

    在Linux下输入命令ls -l /etc/termcap /root/install.log,我们经常看到,这后面的一串内容具体是什么含义呢?[root@www ~]# ls -l /etc/ter ...

  8. Accord.NET入门

    0.序 园子里介绍Accord.NET的文章不少,但是具体讲如何使用的反而不多,可能跟.NET在机器学习领域应用不多有关.诚然,如果做项目的话,可能用Python更好一些,但是如果把了解Accord. ...

  9. springboot+maven+thymeleaf配置实战demo

    本案例使用thymeleaf,与springboot配置使用.thymeleaf是一种模板语言,可以动态或者静态显示文本内容. 1 .项目结构 2.构建springboot项目 通过idea的new ...

  10. html不识别<br/>,后台返回<br/>,前端不换行解决办法

    今天编写页面,后台直接返回带有html格式的字符串,包含<br/>,前端以为要展示<br/>,将其解析为<br/>页面不换行 解决办法 后台将<br/> ...