UISearchBar Не сдвигается вверх - PullRequest
6 голосов
/ 04 ноября 2011

Почему-то я не знаю, почему анимация по умолчанию не работает.

моя панель поиска не сдвинулась вверх, как это должно быть.

представление в UIView, мне интересно, еслив этом проблема.

Включен макет IB

enter image description here enter image description here enter image description here

Ответы [ 3 ]

11 голосов
/ 08 ноября 2011

Панель поиска фактически не перемещается в анимации «отжимания».Скорее, он остается на месте, пока поднимается панель навигации, тем самым притягивая к себе остальную часть обзора.Вы должны иметь возможность перемещать строку поиска вручную в коде, зарегистрировавшись в качестве его делегата (UISearchBarDelegate) и ответив на эти вызовы.

#pragma mark - UISearchBarDelegate Methods
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {
    //move the search bar up to the correct location eg
    [UIView animateWithDuration:.4
                 animations:^{ 
                     searchBar.frame = CGRectMake(searchBar.frame.origin.x,
                                                  0,
                                                  searchBar.frame.size.width,
                                                  searchBar.frame.size.height);
                 } 
                 completion:^(BOOL finished){
                     //whatever else you may need to do
                 }];
}

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {
    //move the search bar down to the correct location eg
    [UIView animateWithDuration:.4
                 animations:^{ 
                     searchBar.frame = CGRectMake(searchBar.frame.origin.x,
                                                  /*SearchBar original Y*/,
                                                  searchBar.frame.size.width,
                                                  searchBar.frame.size.height);
                 } 
                 completion:^(BOOL finished){
                     //whatever else you may need to do
                 }];
}
2 голосов
/ 08 ноября 2011

Лучший способ реализовать UISearchBar и UISearchDisplayController, следуя рекомендациям Apple, - это посмотреть на пример под названием TableSearch , в описании говорится:

Демонстрирует, каквыполнять поиск содержимого UITableView с использованием UISearchBar и UISearchDisplayController, эффективно фильтруя и выводя содержимое этой таблицы.Если приложение iPhone / iPod Touch содержит большие объемы табличных данных, в этом примере показано, как отфильтровать их до приемлемого уровня, если использование памяти вызывает беспокойство или вы просто хотите, чтобы пользователи прокручивали меньше табличного содержимого.

Надеюсь, это поможет вам.

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

На первом изображении вашего вопроса вы показываете используемый UISearchDisplayController.Для достижения этой точной анимации вам нужно будет использовать UISearchDisplayController и изменить его UISearchBar, чтобы он выглядел так, как будто вы создали его.Вы можете перетащить UISearchDisplayController в Interface Builder, а затем использовать код для изменения его свойства searchBar.

self.searchDisplayController.searchbar будет тем, что вы измените, если все правильно подключено в Interface BUilder.

...