iOS中UISearchBar首次搜索时抖动的解决

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 ;)

猜你喜欢

转载自blog.csdn.net/mydo/article/details/80892956