iOS: 工具栏控件UIToolBar和工具栏按钮控件UIBarButtonItem的使用

一、工具栏控件: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(0, 667-60, 375, 40)];

    //设置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(0, 30, 375, 40)];

    //设置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];

演示结果如下:

时间: 2024-10-11 03:19:44

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

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

原文:  http://blog.csdn.net/songrotek/article/details/8692866?utm_source=tuicool 对于UIToolbar,UINavigationBar,UITabBar,UIBarButtonItem,UITabBarItem这几种控件的自定义,因为具备共同性,因此放在一起讨论. 通常有两种方式来实现自定义. 1)获取控件的对象,然后对这个特定的对象进行特定的修改. 2)利用UIAppearance来实现对所有同类控件及特定同类的自定

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

一.Button和ImageButton特证: 1.共同特证: 都可以作为一个按钮产生点击事件 2.不同特证: Button有text的属性,ImageButton没有 ImageButton有src属性,Button没有 二.布局文件中设置Button和ImageButton控件 <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_heigh

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

因为私人问题,鸡啄米暂停更新了几天,首先向关注鸡啄米动态的朋友说一声抱歉. 言归正传,鸡啄米上一节中讲了编辑框的用法,本节继续讲解常用控件--按钮控件的使用. 按钮控件简介 按钮控件包括命令按钮(Button).单选按钮(Radio Button)和复选框(Check Box)等.命令按钮就是我们前面多次提到的狭义的按钮控件,用来响应用户的鼠标单击操作,进行相应的处理,它可以显示文本也可以嵌入位图.单选按钮使用时,一般是多个组成一组,组中每个单选按钮的选中状态具有互斥关系,即同组的单选按钮只能有

MFC按钮控件(Button)

按钮控件的主要方法和事件见MFC++程序开发参考大全(P186-P188) 下面是一个实例,用按钮来实现显示位图.显示图标.显示鼠标图像和选中按钮的功能,步骤如下: 1.创建一个基于对话框的应用程序 2.向对话框中添加一个复选按钮.一个单选按钮控件和5个按钮控件,为按钮控件添加变量,分别为m_Button1.m_Button2.m_Button3. 3.向工厂中导入一个ICO图标.一个BMP位图和一个CUR鼠标图像. 4.实现按钮显示位图功能 void CButtonDlg::OnButton1

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

本文将演示标签和按钮在故事板中的应用. 在欢迎串口中,点击创建一个新的项目[Create a new Xcode project] [Single View App]->[Next]->[Product Name]:StoryboardProject ->[Create]->[Main Interface]:Main.storyboard 打开编辑故事板文件. 然后在根视图控制器中点击,以选择视图控制器的根视图. 接着点击库图标(项目地址右侧),打开控件列表. 需要往故事板中添加一

WIndowsForm 公共控件 菜单和工具栏

                                                  公共控件   菜单栏 状态栏   布局    公共控件 textbox:  text属性:用于获取或设置文本框的文本 一般情况下,几乎所有的控件里的属性,都具备获取或设置两个功能 passwordchar:替换字符实现密码隐藏的效果 comboBox:  属性SelectedIndex = 0; 用于获取或设置选中项的索引 selectedText:获取或设置选中项的文本 selectedItem

javascript控件开发之工具栏控件

在前几篇的基础上,本篇将开发工具栏控件,工具栏控件一般包括三部份, 1.toolBar控件,简单说就是工具栏容器, 2.toolButton控件,即工具栏上的按钮控件,该按钮控件包括图标和文字两部份, 3.则是分隔符控件,一般分隔符控件也是在toolButton控件基础上引申出来的, 为了简单易学,我们这里直接用上一篇的控件作为toolBar控件使用,也就是我们这次编写出来的toolButton控件直按放一Panel控件上, 首先在component\ui\文件夹下添加控件文件,com.ui.t

VC/MFC 工具栏上动态添加组合框等控件的方法

引言 工具条作为大多数标准的Windows应用程序的一个重要组成部分,使其成为促进人机界面友好的一个重要工具.通过工具条极大方便了用户对程序的操作,但是在由Microsoft Visual C++开发环境所创建的应用程序框架中的工具条只是一个简单的按钮的集合,在功能上也仅仅是起到了菜单快捷方式的作用,而没有做到象VC.Word等软件的工具条那样,提供多种不同类型的标准控件如组合框.编辑框等.尤其是组合框在添加到工具条上后,可将原本需要在弹出对话框中完成的交互操作在工具条上就可以进行,从而在很大程

【iOS开发-56】案例BUG:按钮的enabled、控件的userInteractionEnabled以及两种提示框UIAlert和UIActionSheet

接上述案例找BUG:[iOS开发-51]案例学习:动画新写法.删除子视图.视图顺序.延迟方法.按钮多功能用法及icon图标和启动页设置 (1)BUG:答案满了就不能再点击option按钮,答案没满就能点. 在optionClick方法的if(full)中设置,即判断答案是否满了,如果满了,则: if (full) { //如果答案满了,不管是否正确,只要满了,下面的option按钮就不能被点击 for (UIButton *optionBtn in self.optionView.subview