UISearchBar对于iOS中的搜索功能来说是非常有用的,一般来说它和UISearchController配合来用简直美美哒 ;)
通常SearchBar是放在UITableView的头部,但也不尽然。
对于我的需求来说我把它放到了UITableView的第一个Cell里:
func setupSearchController(){ //custom Search Results Controller let folderSearchVC = FolderSearchViewController() searchController = UISearchController(searchResultsController: folderSearchVC) //cancel hide NavigationBar searchController.hidesNavigationBarDuringPresentation = false searchController.searchResultsUpdater = folderSearchVC searchBar = searchController.searchBar searchBar.placeholder = "搜索习惯组" //放到第一个Cell里 firstCell.contentView.addSubview(searchBar) }
但是在第一次搜索的时候,其中的placeholder内容总会顽皮的略微向上跳一下,真是让我欢喜让我忧:
 如上图!注意,这个问题只在第一次点击SearchBar时会出现,随后都正常! 虽说这只是一个小的“瑕疵”(这取决你怎么看,你可能认为这很活泼,很好…),但拥有强迫症天猫座的我怎能忍受… 解决起来很简单,只要关闭显示cancel按钮的动画即可:
func searchBarShouldBeginEditing(_ searchBar: UISearchBar) -> Bool { //消除第一次点击搜索bar,其中placeholder文字发生向上跳动的情况 searchBar.setShowsCancelButton(true, animated: false) return true }
That’s All OK ;)