2014-10-04 4 views
0

У меня есть UITableView, где searchBar находится в таблицеViews HeaderView, Когда сегмент = 1, я хочу удалить это, но когда я пытаюсь скрыть его, searchBar исчезает, но ячейка не переместитесь в верхнюю часть. Как я могу это решить. Вот изображение:Скрыть searchBar on segmentedIndex is 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() должен сделать разницу –

+0

что вы хотите сказать мне, я не могу понять –

+0

U ничего не изменил? –

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

hmm Как у вас добавить свой поискБар? программно? –

+0

Могу ли вы поделиться, как u добавил searchBar программно –

+0

Я создал IBOutlet для searchBar. В Objective-C –

Смежные вопросы