之前看了 Ray Wenderlich 的一篇文章 学习了一下怎么把 UISearchBar 放在 UITableView 的头部,来进行列表搜索,然后发现了两个问题,用了好久才解决:
tableView.tableHeaderView = searchController.searchBar // now working
searchController.searchBar.layer.borderWidth = 1
searchController.searchBar.layer.borderColor = // your background color
我发现 tableHeaderView 是可以被其他 view 有效填充的,不知道为什么 searchBar 就是放不进去,所以直接找个大小一样的 UIView 作为容器放在 searchBar 下面就好了。
let containerView = UIView(frame: CGRectMake(0, 64, view.frame.width, 44))
containerView.backgroundColor = // your background color
searchController.searchBar.frame = CGRectMake(0, 0, view.frame.width, 44)
containerView.addSubview(searchController.searchBar)
tableView.tableHeaderView = containerView