工具条是个很重要的内容,什么是工具条呢,它一般显示在屏幕下方,显示一些按钮或者文字,我们可以用系统现成的,也可以用我们自定义的。之前我们讲的都是需要代理模式的,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方法中加上我们上面定义的方法,现在运行来看一下效果:
效果如图,如果中间没有加那个空格的话这两个按钮就挨在一起了。我们点击一下删除按钮,试试效果:
好的证明我们实现了。