Отключить UISearchBar - PullRequest
       23

Отключить UISearchBar

16 голосов
/ 07 февраля 2012

У меня, как я надеюсь, очень простой вопрос: как отключить UISearchBar в IOS5, чтобы избежать взаимодействия с пользователем?Я не могу найти setEnabled или что-то вроде этого ...

Спасибо!

Ответы [ 5 ]

43 голосов
/ 07 февраля 2012

Вы пробовали:

[searchBar setUserInteractionEnabled:NO];

?

14 голосов
/ 23 мая 2012

Помимо настройки взаимодействия с пользователем, я также настроил альфа-значение, чтобы сделать внешний вид уникальным.

searchbar.alpha = .75;
6 голосов
/ 20 марта 2014

Попробуйте это

// Normal 
self.searchDisplayController.searchBar.userInteractionEnabled = YES;
self.searchDisplayController.searchBar.translucent = YES;
self.searchDisplayController.searchBar.searchBarStyle = UISearchBarStyleDefault;
self.searchDisplayController.searchBar.backgroundColor = [UIColor clearColor];

// Faded out
self.searchDisplayController.searchBar.userInteractionEnabled = NO;
self.searchDisplayController.searchBar.translucent = NO;
self.searchDisplayController.searchBar.searchBarStyle = UISearchBarStyleMinimal;
self.searchDisplayController.searchBar.backgroundColor = [UIColor lightGrayColor];
1 голос
/ 22 марта 2018

Расширение для Swift 4, предоставляющее функции для включения и отключения UISearchBar. Не стесняйтесь корректировать альфа-значение по своему усмотрению, поскольку используемые цветовые схемы могут повлиять на результат.

extension UISearchBar {
    func enable() {
        isUserInteractionEnabled = true
        alpha = 1.0
    }

    func disable() {
        isUserInteractionEnabled = false
        alpha = 0.5
    }
}

Затем отключить строку поиска:

searchBar.disable()

Для включения:

searchBar.enable()
0 голосов
/ 20 мая 2017

Для Swift 3:

self.searchController.searchBar.isUserInteractionEnabled = true

Или, если вы все еще хотите обнаружить взаимодействие с пользователем, вы можете сделать это, чтобы отключить UITextField внутри UISearchBar:

(self.searchController.searchBar.value(forKey: "searchField") as! UITextField).isEnabled = false
...