Как скрыть / показать область видимости UISearchBar с анимацией? - PullRequest
16 голосов
/ 17 июня 2010

Я хочу не показывать панель областей, когда таблица пуста (до того, как панель поиска редактируется в первый раз), не отображать панель областей при ее редактировании и, наконец, отображать ее при завершении редактирования.Я знаю о протоколе UISearchBarDelegate, но я не знаю, как показать / скрыть панель областей с анимацией.Я знаю, что в UISearchBar есть setShowsScopeBar:, но нет setShowsScopeBar:animated:, как у setShowsCancelButton:animated.

Редактировать Важно, чтобы вызывать [searchBar sizeToFit] после показа / скрытия панели области действия.,Есть ли хороший способ оживить это?(Должен ли я сделать это ? Это не похоже на работу.)

1 Ответ

44 голосов
/ 30 мая 2011

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

Полный код с небольшим бонусом анимации появления кнопки отмены (dis):

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {
    searchBar.showsScopeBar = YES;
    [searchBar sizeToFit];
    [searchBar setShowsCancelButton:YES animated:YES];

    return YES;
}

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {
    searchBar.showsScopeBar = NO;
    [searchBar sizeToFit];
    [searchBar setShowsCancelButton:NO animated:YES];

    return YES;
}

РЕДАКТИРОВАТЬ - Версия Swift 3

public func searchBarShouldBeginEditing(_ searchBar: UISearchBar) -> Bool {
    searchBar.showsScopeBar = true
    searchBar.sizeToFit()
    searchBar.setShowsCancelButton(true, animated: true)

    return true
}

public func searchBarShouldEndEditing(_ searchBar: UISearchBar) -> Bool {
    searchBar.showsScopeBar = false
    searchBar.sizeToFit()
    searchBar.setShowsCancelButton(false, animated: true)

    return true
}

Источник: http://www.alexandre -gomes.com /? P = 418

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...