当搜索栏聚焦时,我看到的许多表搜索实际上变暗了(更改alpha?)实际的tableView。我正在努力实现这一点。
当我超载
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
我正在尝试做类似
的事情self.tableView.alpha = .5f
但它改变了实际searchBar的alpha值(如果我自己有searchBar)或者更改整个表格的alpha(包括searchBar),如果我在IB中的tableView下面有searchBar。
我在这里做错了什么。我怎么能把桌子弄脏而不是一切。
我想我真正无法理解的是这些东西是如何在屏幕上分层的。
编辑:联系人应用程序是我正在尝试做的一个很好的例子。
答案 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
}