2016-08-13 89 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创建一个插座。

相关问题