UITableView, как «затемнить» фактическую таблицу, когда UISearchbar получает фокус? - PullRequest
7 голосов
/ 08 февраля 2010

Многие из поисковых запросов в таблицах, которые я вижу, фактически тускнеют (изменяют альфа?) Фактического tableView, когда панель поиска становится сфокусированной. Я пытаюсь реализовать это.

Когда я перегружаюсь

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar

Я пытаюсь сделать что-то вроде

self.tableView.alpha = .5f

Но это изменение альфа фактического searchBar (если у меня есть searchBar самостоятельно) или изменение альфа всей таблицы (включая searchBar), если у меня есть searchBar под tableView в IB.

Что я здесь не так делаю. Как я могу просто затемнить стол и не все.

Полагаю, я действительно не понимаю, как все это наслоено на экран.

РЕДАКТИРОВАТЬ: приложение контактов является хорошим примером того, что я пытаюсь сделать.

Ответы [ 3 ]

10 голосов
/ 08 февраля 2010

Большинство таких приложений просто помещают UIView на черном фоне поверх таблицы и постепенно увеличивают его (до альфа 0,5 или чего-то еще), когда панель поиска получает фокус.

2 голосов
/ 11 апреля 2012

Если вы используете UISearchDisplayController, вы получаете это поведение бесплатно.

0 голосов
/ 20 февраля 2016

Начиная с iOS 8 (и, по крайней мере, до iOS 9.2) вы должны использовать UISearchController. К сожалению, в настоящее время построитель интерфейса поддерживает только устаревшую UISearchDisplayController. Итак, вот как программно добавить его в контроллер табличного представления, включая эффект затемнения:

let searchController = UISearchController(searchResultsController: nil)

override func viewDidLoad() {
    super.viewDidLoad()

    // Use the current view controller to update the search results:
    self.searchController.searchResultsUpdater = self
    self.searchController.dimsBackgroundDuringPresentation = true
    self.tableView.tableHeaderView = searchController.searchBar
}
...