2016-08-13 91 views
0

我找不到任何的方式來增加switch button在我的tableview我怎麼能添加UISwitch到UITableView的

我有一個搜索欄,它完美的作品,

,現在我想添加一個切換按鈕啓用「和」「或」過濾器在我的搜索。

inline

inline

inline

import Foundation 
import UIKit 

class TableViewController: UITableViewController, UISearchResultsUpdating { 
    var appDel: AppDelegate! 
// var customTabBarItem:UITabBarItem = UITabBarItem(title: nil, image: UIImage(named: "my.png")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), selectedImage: UIImage(named: "my.png")) 

    var filteredTableData = [String]() 
    var resultSearchController = UISearchController() 

    override func viewDidLoad() { 
     self.edgesForExtendedLayout = UIRectEdge.None 
     UIApplication.sharedApplication().statusBarHidden = true 
     appDel = UIApplication.sharedApplication().delegate as? AppDelegate 
//  tabBarItem = customTabBarItem 

     self.resultSearchController = ({ 
      let controller = UISearchController(searchResultsController: nil) 
      controller.searchResultsUpdater = self 
      controller.dimsBackgroundDuringPresentation = false 
      controller.searchBar.sizeToFit() 

      self.tableView.tableHeaderView = controller.searchBar 

      return controller 
     })() 

     // Reload the table 
     self.tableView.reloadData() 
     print("TableView called!!") 
    } 

    func updateSearchResultsForSearchController(searchController: UISearchController) 
    { 
     //refer to http://www.ioscreator.com/tutorials/add-search-table-view-tutorial-ios8-swift 
     filteredTableData.removeAll(keepCapacity: false) 

     let searchPredicate = NSPredicate(format: "SELF CONTAINS[c] %@", searchController.searchBar.text!) 
     let array = ((appDel.dataFetcher?.appTitles)! as NSArray).filteredArrayUsingPredicate(searchPredicate) 
     filteredTableData = array as! [String] 
     self.tableView.reloadData() 
    } 

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     if (self.resultSearchController.active) { 
      return self.filteredTableData.count 
     } 
     else if appDel.dataFetcher?.appTitles == nil { 
      return 0 
     }else{ 
      return (appDel.dataFetcher?.appTitles?.count)! 
     } 
    } 

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCellWithIdentifier("appCell", forIndexPath: indexPath) 
     let currentItem: String = (appDel.dataFetcher?.appTitles?[indexPath.row])! 

     if (self.resultSearchController.active) { 
      cell.textLabel?.text = filteredTableData[indexPath.row] 
      return cell 
     } 
     else { 
      cell.textLabel?.text = currentItem 
      cell.detailTextLabel?.text = String(indexPath.row) 
      return cell 
     } 


    } 

} 
+0

不建議在搜索欄之下添加開關,就像你想要的那樣。從那裏添加切換到導航欄和控制過濾器的tableview。否則,如果你真的想,那麼在表頭的標題視圖中添加開關。 – NightFury

回答

0

創建通過拖動一個UIView到的tableView的頂部,只是第一個原型細胞上方的表頭視圖。以this question爲例。

在那裏你可以放置你的UISwitchView併爲你的VC創建一個插座。

相關問題