1,搜索条Options属性还可设置如下功能样式:
 
 Shows Search Results Button:勾选后,搜索框右边显示一个圆形向下的按钮,单击会发送特殊事件。 
 
Shows Bookmarks Button:勾选后,搜索框右边会显示一个书本的按钮,单击会发送特殊事件。 
 
Shows Cancel Button:勾选后,搜索框右边会出现一个“Cancel”按钮,单击会发送特殊事件。 
 
Shows Scope Bar:勾选后,会在搜索条下面出现一个分段控制器。 
 
2,下面是一个搜索条的使用样例,功能如下:
   (1)在Main.storyboard界面里拖入一个Search Bar和一个Table View,Search Bar放到Table View的页眉位置 
 
 
 
   (2)初始化或者搜索条为空时,表格显示所有数据 
 
 
 
   (3)搜索条不为空时,表格实时过滤显示匹配的项目 
 
 
  
  3,效果图 
 
 
  
  4,代码如下 
  
 
 |  
        
         1 
         
       
         2 
         
       
         3 
         
       
         4 
         
       
         5 
         
       
         6 
         
       
         7 
         
       
         8 
         
       
         9 
         
       
         10 
         
       
         11 
         
       
         12 
         
       
         13 
         
       
         14 
         
       
         15 
         
       
         16 
         
       
         17 
         
       
         18 
         
       
         19 
         
       
         20 
         
       
         21 
         
       
         22 
         
       
         23 
         
       
         24 
         
       
         25 
         
       
         26 
         
       
         27 
         
       
         28 
         
       
         29 
         
       
         30 
         
       
         31 
         
       
         32 
         
       
         33 
         
       
         34 
         
       
         35 
         
       
         36 
         
       
         37 
         
       
         38 
         
       
         39 
         
       
         40 
         
       
         41 
         
       
         42 
         
       
         43 
         
       
         44 
         
       
         45 
         
       
         46 
         
       
         47 
         
       
         48 
         
       
         49 
         
       
         50 
         
       
         51 
         
       
         52 
         
       
         53 
         
       
         54 
         
       
         55 
         
       
         56 
         
       
         57 
         
       
         58 
         
       
         59 
         
       
         60 
         
       
         61 
         
       
         62 
         
       
         63 
         
       
         64 
         
       
         65 
         
       
         66 
         
       
         67 
         
       
         68 
         
       
         69 
         
       
         70 
          |  
       
       import 
         UIKit 
        class 
           
        ViewController 
         : 
         UIViewController 
         , 
         UISearchBarDelegate 
         ottom:auto!important; float:none!important; height:auto!important; left:auto!important; line-height:1.5em!important; margin:0px!important; overflow:visible!important; padding:1px 0px!important; position:static!important; right:auto!important; top:auto!important; vertical-align:baseline!important; width:auto!important; font-family:Consolas, 
        UITableViewDataSource 
         UITableViewDelegate 
         { 
         
        // 引用通过storyboard创建的控件 
        @IBOutlet 
         var 
         searchBar : 
         UISearchBar 
         ! 
        tableView : 
           
        UITableView 
         ! 
        // 所有组件 
          
        ctrls:[ 
           
        String 
         ] = [ 
         "Label" 
         ottom:auto!important; float:none!important; height:auto!important; left:auto!important; line-height:1.5em!important; margin:0px!important; overflow:visible!important; padding:1px 0px!important; position:static!important; right:auto!important; top:auto!important; vertical-align:baseline!important; width:auto!important; font-family:Consolas, 
         "Button1" 
         "Button2" 
         "Switch" 
         ] 
        // 搜索匹配的结果,Table View使用这个数组作为datasource 
          
        ctrlsel:[ 
           
        ] = [] 
        override 
           
        func 
         viewDidLoad() { 
        super 
           
        .viewDidLoad() 
        // 起始加载全部内容 
          
        self 
           
        .ctrlsel = 
         .ctrls 
        // 注册TableViewCell 
          
        .tableView.registerClass( 
           
        UITableViewCell 
         . 
         ottom:auto!important; float:none!important; height:auto!important; left:auto!important; line-height:1.5em!important; margin:0px!important; overflow:visible!important; padding:1px 0px!important; position:static!important; right:auto!important; top:auto!important; vertical-align:baseline!important; width:auto!important; font-family:Consolas,forCellReuseIdentifier: 
         "SwiftCell" 
         ) 
        } 
        // 返回表格行数(也就是返回控件数) 
          
        tableView(tableView: 
           
        ottom:auto!important; float:none!important; height:auto!important; left:auto!important; line-height:1.5em!important; margin:0px!important; overflow:visible!important; padding:1px 0px!important; position:static!important; right:auto!important; top:auto!important; vertical-align:baseline!important; width:auto!important; font-family:Consolas,numberOfRowsInSection section: 
         Int 
         ) -> 
         { 
        return 
           
        .ctrlsel.count 
        } 
          
        // 创建各单元显示内容(创建参数indexPath指定的单元) 
          
        NSIndexPath 
           
        ) 
        -> 
           
        UITableViewCell 
        { 
          
        // 为了提供表格显示性能,已创建完成的单元需重复使用 
          
        let 
           
        identify: 
         = 
         "SwiftCell" 
        // 同一形式的单元格重复使用,在声明时已注册 
          
        cell = tableView.dequeueReusableCellWithIdentifier(identify,forIndexPath: indexPath) 
          
        as 
           
        UITableViewCell 
        cell.accessoryType = 
           
        UITableViewCellAccessoryType 
         . 
         disclosureIndicator 
        cell.textLabel?.text = 
           
        .ctrlsel[indexPath.row] 
        return 
           
        cell 
        } 
          
        // 搜索代理UISearchBarDelegate方法,每次改变搜索内容时都会调用 
          
        searchBar(searchBar: 
           
        !,textDidChange searchText: 
         !) { 
        // 没有搜索内容时显示全部组件 
          
        if 
           
        searchText == 
         "" 
         { 
        .ctrls 
          
        } 
          
        else 
           
        { 
         // 匹配用户输入内容的前缀 
        .ctrlsel = [] 
          
        for 
           
        ctrl 
         in 
         .ctrls { 
        ctrl.lowercaseString.hasPrefix(searchText) { 
          
        .ctrlsel.append(ctrl) 
          
        } 
          
        } 
          
        } 
          
        // 刷新Table View显示 
          
        .tableView.reloadData() 
          
        } 
          
        // 搜索代理UISearchBarDelegate方法,点击虚拟键盘上的Search按钮时触发 
          
        //func searchBarSearchButtonClicked(searchBar: UISearchBar!) { 
          
        //searchBar.resignFirstResponder() 
          
        //} 
          
        didReceiveMemoryWarning() { 
          
        .didReceiveMemoryWarning() 
          
        // dispose of any resources that can be recreated. 
          
        } 
          
        } 
         |  
     
原文出自: www.hangge.com 转载请保留原文链接: http://www.hangge.com/blog/cache/detail_562.html