zoukankan      html  css  js  c++  java
  • 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];

    演示结果如下:

  • 相关阅读:
    asp.net 网页标题、关键字、描述
    星级评分jQuery插件
    以jquery为基础的星星评分
    投票系统显示结果jQuery插件
    JAVASCRIPT模拟模式对话窗口
    Repeater 嵌套代码
    window服务程序安装卸载批处理文件
    c#window程序开发入门系列自学笔记
    jquery 模式对话框改进版
    php的正则表达式完全手册
  • 原文地址:https://www.cnblogs.com/XYQ-208910/p/4850939.html
Copyright © 2011-2022 走看看