Как вы скрываете/показываете панель видимости UISearchBar с анимацией?

175
15

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


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

спросил(а) 2021-01-25T13:21:45+03:00 4 месяца, 2 недели назад
1
Решение
286

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


Полный код с небольшим бонусом анимации кнопок отмены (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;
}

EDIT - версия 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

ответил(а) 2021-01-25T13:21:45+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема