Переключить SearchBar в iOS - PullRequest
       16

Переключить SearchBar в iOS

1 голос
/ 06 ноября 2011

У меня есть TableView вместе с кнопкой поиска внизу. Я хотел бы, чтобы кнопка поиска вызывала SearchBar в верхней части и фокусировалась. В противном случае показ SearchBar не должен отображаться.

Достаточно просто поставить строку поиска над TableView, но есть ли способ скрыть / показать ее с анимацией?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 21 декабря 2011

Это работает для меня.Надеюсь, что это поможет.

Вызовите [self hideSearchBar] в вашем viewWillAppear (это будет изначально скрывать панель поиска).

Ваша кнопка поиска должна иметь следующее действие:

- (IBAction)searchIconButtonClicked {
    if (self.searchDisplayController.isActive || (self.tableView.contentOffset.y < 44)) {
        if (self.searchDisplayController.isActive) {
            self.searchDisplayController.searchBar.text = nil;
            [self.searchDisplayController setActive:NO animated:YES];
            [tableView reloadData];
        }
        [self hideSearchBar];
    } else {
        [self.patientTableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:YES];
    }
}

- (void)hideSearchBar {
    //NSLog(@"Hiding SearchBar");        
    [self.tableView setContentOffset:CGPointMake(0,44)];
}
1 голос
/ 06 ноября 2011

Вы пробовали использовать метод -[UITableView scrollRectToVisible:animated:]?Я думаю, что UISearchBar представление обычно является просто представлением заголовка таблицы, поэтому вы должны попросить табличное представление прокрутить вверх, чтобы отобразить панель поиска.

...