2014-10-04 89 views
0

我有一個UITableView其中searchBar在tableViews HeaderView中,當segment = 1時我想刪除這個,但是當我嘗試隱藏它時,searchBar消失,但是單元格沒有移動到頂部。我該如何解決這個問題。以下是圖像:隱藏搜索欄segmentedIndex是1

enter image description here

@IBAction func segmentAction(sender: UISegmentedControl) { 
    switch sender.selectedSegmentIndex { 
    case 0: 
     tableView.scrollEnabled = true 
     segment = 0 
     self.tableView.tableHeaderView?.hidden = false 
    case 1: 
     tableView.scrollEnabled = false 
     segment = 1 
     self.tableView.tableHeaderView?.hidden = true 


    default: 
     break 
    } 
    tableView.reloadData() 

} 

回答

0

你應該調整的tableView頭也嘗試下面的代碼。

@IBAction func segmentAction(sender: UISegmentedControl) { 
    switch sender.selectedSegmentIndex { 
    case 0: 
     tableView.scrollEnabled = true 
     segment = 0 
     self.tableView.tableHeaderView!.hidden = false 

     var newFrame = self.tableView.tableHeaderView!.frame; 
     newFrame.size.height = 44.0; //defaut height whatever you want 
     self.tableView.tableHeaderView!.frame = newFrame; 
    case 1: 
     tableView.scrollEnabled = false 
     segment = 1 
     self.tableView.tableHeaderView!.hidden = true 

     var newFrame = self.tableView.tableHeaderView!.frame; 
     newFrame.size.height = 0.0; //defaut height whatever you want 
     self.tableView.tableHeaderView!.frame = newFrame; 

    default: 
     break 
    } 
    tableView.reloadData() 

} 
0

你試試這個代碼

@IBAction func segmentAction(sender: UISegmentedControl) { 
    switch sender.selectedSegmentIndex { 
    case 0: 
     tableView.scrollEnabled = true 
     segment = 0 
     self.tableView.tableHeaderView?.hidden = false 
    case 1: 
     tableView.scrollEnabled = false 
     segment = 1 
     self.tableView.tableHeaderView?.hidden = true 
     tableView.reloadData() 

    default: 
     break 
    } 
    tableView.reloadData() 

} 
+0

沒有幫助?不明白爲什麼另一個tableView.reloadData()應該有所作爲 – 2014-10-04 09:24:30

+0

你想告訴我我不明白 – 2014-10-04 09:28:36

+0

你沒有改變什麼? – 2014-10-04 09:31:12

2

試試這個代碼。它爲我

@IBAction func segmentAction(sender: UISegmentedControl) { 
switch sender.selectedSegmentIndex { 
case 0: 
    tableView.scrollEnabled = true 
    segment = 0 
    self.tableView.tableHeaderView = nil 
case 1: 
    tableView.scrollEnabled = false 
    segment = 1 
    self.tableView.tableHeaderView = searchBar 


default: 
    break 
} 
tableView.setNeedsDisplay() 

}工作

+0

嗯,你是怎麼添加你的searchBar的?編程? – 2014-10-04 09:56:15

+0

你可以分享如何以編程方式添加searchBar – 2014-10-04 09:59:09

+0

我已經爲searchBar創建了IBOutlet。在Objective-C – 2014-10-04 10:15:50