swift UI专项训练18 ToolBar工具条

工具条是个很重要的内容,什么是工具条呢,它一般显示在屏幕下方,显示一些按钮或者文字,我们可以用系统现成的,也可以用我们自定义的。之前我们讲的都是需要代理模式的,Dlelegate,委托模式。ToolBar属于目标操作,不需要代理。网界面上拖一个Toolbar拖到界面底部。


toolbar的元素如下:


Style主要是设置样式,比如浅色和黑色的。

Bar Tint是设置颜色。

Item是工具栏上的按钮,跟导航栏很相似。我们可以选择系统中已有的,比如我们选择done


那么toolbar上的按钮就会变成这样:


样式非常多,大家可以试试。工具条的行为就比较特殊了,它不是代理,它是目标操作,那么目标是谁,操作是什么。现在来体验一下,老规矩,把组件和控制器连线。不需要委托,那么可以在控制器中直接进行操作.现在我准备把工具条设置两个按钮,一左一右,左边的是删除按钮:

var trashItem : UIBarButtonItem {
    return UIBarButtonItem(barButtonSystemItem: .Trash,target: self,action: "trashclick:")
    }
    
    
    func trashclick(barItem: UIBarButtonItem) {
    println("您按了删除")
    }



target就是目标,而action就是操作。action中使用了注册,所以transhclick后面要跟着冒号,使用的系统样式是Trash,这是系统自带的是一个垃圾桶的样式。

再添加一个分享按钮,代码类似:

var shareItem : UIBarButtonItem {
        return UIBarButtonItem(barButtonSystemItem: .Reply,action: "shareclick:")
    }
    
    
    func shareclick(barItem:UIBarButtonItem) {
        println("您按了分享")
    }



再在两个按钮间加一个空格,不需要代理和操作:

var spaceItem : UIBarButtonItem {
        return UIBarButtonItem(barButtonSystemItem: .FlexibleSpace,target: nil,action: nil)
    }

现在我们定义一个初始化按钮的方法:
func configToolbar(){
    let items = [
        trashItem,spaceItem,shareItem
        ]
    toolbar1.setItems(items,animated: true)
    }

别忘了最后在viewdidload方法中加上我们上面定义的方法,现在运行来看一下效果:



效果如图,如果中间没有加那个空格的话这两个按钮就挨在一起了。我们点击一下删除按钮,试试效果:


好的证明我们实现了。

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...