美文网首页iOS学习专题
iOS开发之为TextField添加工具栏(UIToolBar)

iOS开发之为TextField添加工具栏(UIToolBar)

作者: brilliance_Liu | 来源:发表于2017-07-03 17:05 被阅读1163次
    工具条控件 UIToolbar 用做工具条按钮项(UIBarButtonItem)的容器,可以盛放一个或者多个工具条按钮项,一般放置在界面顶部或者底部。如果要针对工具条按钮项自定义视图,可以使用 UIToolbarDelegate 设置。工具条按钮UIBarButtonItem又有多种样式,根据创建方法的不同有UIBarButtonItemStyle和UIBarButtonSystemItem两种样式。工具栏的使用典型就是阿里的一款办公软件“钉钉”了。

    1.首先介绍系统提供样式

    typedef NS_ENUM(NSInteger, UIBarButtonSystemItem) {
            UIBarButtonSystemItemDone,           Done
            UIBarButtonSystemItemCancel,         Cancel
            UIBarButtonSystemItemEdit,           Edit
            UIBarButtonSystemItemSave,           Save
            UIBarButtonSystemItemUndo,           Undo
            UIBarButtonSystemItemRedo,           Redo
            UIBarButtonSystemItemAdd,            加号 图标按钮
            UIBarButtonSystemItemFlexibleSpace,  弹簧 按钮,将 button 推向两边
            UIBarButtonSystemItemFixedSpace,     弹簧 按钮,将 button 推向两边,
                                                 可设间距 fixedSpaceButton.width = 50;
            UIBarButtonSystemItemCompose,        撰写 图标按钮
            UIBarButtonSystemItemReply,          答复 图标按钮
            UIBarButtonSystemItemAction,         详情 图标按钮
            UIBarButtonSystemItemOrganize,       文件夹 图标按钮
            UIBarButtonSystemItemBookmarks,      书籍 图标按钮
            UIBarButtonSystemItemSearch,         搜索 图标按钮
            UIBarButtonSystemItemRefresh,        刷新 图标按钮
            UIBarButtonSystemItemStop,           X 号 图标按钮
            UIBarButtonSystemItemCamera,         相机 图标按钮
            UIBarButtonSystemItemTrash,          删除 图标按钮
            UIBarButtonSystemItemPlay,           播放 图标按钮
            UIBarButtonSystemItemPause,          暂停 图标按钮
            UIBarButtonSystemItemRewind,         快退 图标按钮
            UIBarButtonSystemItemFastForward,    快进 图标按钮
    };
    

    对应关系如下图

    图片1.png 图片2.png

    UIToolbar 可以设置tintColor、barTintColor.
    示例1

    UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), 44)];
    toolbar.tintColor = [UIColor blueColor];
    toolbar.backgroundColor = [UIColor lightGrayColor];    
    UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancel)];    
    UIBarButtonItem *doneButton = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(done)];
    toolbar.items = @[cancelButton, doneButton];
    
    示例1.png

    示例2

    UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), 44)];
    toolbar.tintColor = [UIColor blueColor];
    toolbar.barTintColor = [UIColor yellowColor];
    UIBarButtonItem *nextButton = [[UIBarButtonItem alloc] initWithTitle:@"下一步" style:UIBarButtonItemStylePlain target:self action:@selector(nextTextField)];
    UIBarButtonItem *prevButton = [[UIBarButtonItem alloc] initWithTitle:@"上一步" style:UIBarButtonItemStylePlain target:self action:@selector(prevTextField)];
    UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
    UIBarButtonItem *bar = [[UIBarButtonItem alloc] initWithTitle:@"完成" style:UIBarButtonItemStylePlain target:self action:@selector(textFieldDone)];
    toolbar.items = @[nextButton, prevButton, space, bar];
    
    示例2.png
    实际使用只需设置,即可添加
    textField.inputAccessoryView = toolbar;
    

    小结:其实在实际开发中,可以针对工具栏需求通过继承UITextField,创建一个基类UITextField统一处理为最佳。本文为笔者学习之并作为笔记之用,这里附上学习的原帖

    iOSUIToolBar
    iOS开发:为数字键盘添加完成按钮(UIToolbar)


    相关文章

      网友评论

        本文标题:iOS开发之为TextField添加工具栏(UIToolBar)

        本文链接:https://www.haomeiwen.com/subject/fsczcxtx.html