当UISearchbar获得焦点时,UITableView如何“调暗”实际表格?

时间:2010-02-07 21:35:04

标签: iphone uitableview uiview uisearchbar

当搜索栏聚焦时,我看到的许多表搜索实际上变暗了(更改alpha?)实际的tableView。我正在努力实现这一点。

当我超载

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar

我正在尝试做类似

的事情
self.tableView.alpha = .5f

但它改变了实际searchBar的alpha值(如果我自己有searchBar)或者更改整个表格的alpha(包括searchBar),如果我在IB中的tableView下面有searchBar。

我在这里做错了什么。我怎么能把桌子弄脏而不是一切。

我想我真正无法理解的是这些东西是如何在屏幕上分层的。

编辑:联系人应用程序是我正在尝试做的一个很好的例子。

3 个答案:

答案 0 :(得分:10)

当搜索栏获得焦点时,大多数此类应用程序只会在表格顶部放置黑色背景UIView并将其淡入(以0.5或其他任何值的alpha值)。

答案 1 :(得分:2)

如果您使用UISearchDisplayController,则可以免费获得此行为。

答案 2 :(得分:-1)

从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
}