2013-06-30 2 views
0

Установив viewForHeaderInSection как UISearchBar для section = 0, чтобы получить его в верхней части моего UITableView; Я хочу, чтобы сумасшедшие вещи случались, когда это было активно. Поэтому я думаю, что я хочу, чтобы секция имела 0 строк, когда UISearchBar неактивен, а затем настраивается в соответствии с тем, что я хочу, когда он активен.Отрегулируйте UISearchBar при включении в UITableView

Поэтому у меня есть

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar { 
    [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationAutomatic]; 
} 

Но мой стол перезагружает раздел и я теряю firstResponder для поиска. Должен ли я следовать предыдущему фрагменту кода с [self.searchBar becomeFirstResponder], тогда моя проблема все еще не исправлена, возможно, из-за свойства анимации.

Что такое сексуальный способ исправить этот вопрос? Должен ли я использовать tableView:reloadRowsAtIndexPaths? Казалось бы, это слишком сложно. Должен быть лучший способ.

Я предполагаю, что я не первый, кто хочет сделать что-то подобное.

ответ

1

Я всегда добавлял свои строки поиска в качестве подзаголовков моего UITableView, а не заголовков, поэтому они функционируют независимо от таблицы, поэтому перезагрузка строк не должна влиять на панель поиска.

+0

Как вы убедитесь, что он хорошо работает с позиционированием и расталкиванием? –

+0

в 'viewDidLoad' Я установил строку поиска скрытой, вроде бы заправленную с помощью' [myTable setContentOffset: CGPointMake (0.0, self.searchBar.frame.size.height) animated: NO]; 'кроме этого, это просто появляется в верхней части в любое время, когда они прокручиваются вверх. Если вы хотите, чтобы он всегда был видимым, вы можете добавить его за пределы tableView. – SeanT

+0

Спасибо. Я попробую его через пару часов. –

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