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

工具条控件 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,    快进 图标按钮
};

对应关系如下图

iOS开发之为TextField添加工具栏(UIToolBar)_第1张图片
图片1.png
iOS开发之为TextField添加工具栏(UIToolBar)_第2张图片
图片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];
iOS开发之为TextField添加工具栏(UIToolBar)_第3张图片
示例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];
iOS开发之为TextField添加工具栏(UIToolBar)_第4张图片
示例2.png
实际使用只需设置,即可添加
textField.inputAccessoryView = toolbar;

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

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


你可能感兴趣的:(iOS开发之为TextField添加工具栏(UIToolBar))