2014-10-04 63 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