У меня проблема с панелью поиска, которая ведет себя странным образом, когда она становится firstResponder
и когда она уходит в отставку.UISearchBar автоматически изменяет размер и изменяет кадр
Строка поиска добавляется в качестве заголовка представления таблицы
self.searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.view.frame.size.width, 44.0f)];
self.searchBar.translucent = NO;
self.searchBar.barTintColor = [UIColor grayColor];
self.tableView.tableHeaderView = self.searchBar;
self.searchController = [[UISearchDisplayController alloc] initWithSearchBar:self.searchBar
contentsController:self];
self.searchController.searchResultsDataSource = self;
Контроллер вид установлен на левой панели JASidePanelController
и скрывает центральную панель, когда клавиатура показывает или скрывает:
- (void)keyboardWillAppear:(NSNotification *)note
{
[self.sidePanelController setCenterPanelHidden:YES
animated:YES
duration:[[note.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]];
self.searchBar.showsCancelButton = YES;
}
- (void)keyboardWillDisappear:(NSNotification *)note
{
[self.sidePanelController setCenterPanelHidden:NO
animated:YES
duration:[[note.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]];
self.searchBar.showsCancelButton = NO;
}
Нормальное состояние
Когда панель поиска становится firstResponder
он либо движется вокруг точки вверх или смотреть вниз случайно
И Когда панель поиска уходит в отставку оживляет до достижения окна происхождения, а затем вернуться к своей естественной раме
Описание: sample project Воспроизведение ошибки.
EDIT:
Согласно @kwylezsuggestion, нежелательная анимация, что панель поиска делает, когда он уходит в отставку можно избежать:
self.searchBar.clipsToBounds = YES;
Добавление вашего SearchBar как подвид зрения на ViewController, вместо того, как tableHeader в Tableview в фиксирует вверх/вниз движение, если оно не должно быть tableHeader. –
Это правда, но у меня есть контент за табличным представлением, который нужно показать, когда пользователь прокручивает ... Я могу вернуться к решению, хотя, если ничего не найду. – Moxy
проверить мой ответ – codercat