如何在 Swift 中通过操作显示/隐藏 UISearchBar?

Art*_*hur 5 uisearchbar ios swift

我有UITableView一个UISearchBar. 我需要searchBar通过用户操作(按下按钮)来显示/隐藏我的, :

我尝试使用此代码:

if self.tableView.contentOffset.y == 0 {
    self.tableView.contentOffset = CGPoint(x: 0.0, y: self.searchBar.frame.size.height) 
}
Run Code Online (Sandbox Code Playgroud)

从这个问题。其实我已经尝试了所有这些答案。他们都只是滚动 my UITableView,每次我滚动我的UITableView- 都会searchBar出现。我试图做这样的事情:

self.newsTableView.tableHeaderView = nil; //Hide 
Run Code Online (Sandbox Code Playgroud)

和

self.newsTableView.tableHeaderView = self.SearchBar; //Show
Run Code Online (Sandbox Code Playgroud)

却UITableView不想回来searchBar;

我该如何解决这个问题?我需要searchBar通过操作隐藏,而不是滚动我的UITableView(像隐藏一样searchBar.hidden = true)实际上是searchBar.hidden = true有效的,但是有一个空格而不是searchBar.

Ser*_*urd 3

对 searchBar 和 tableView 使用 UIView.animation 当您启动滚动表时更改搜索栏的位置/alpha 和 tableView 的高度

UIView.animateWithDuration(1.0, animations: {
          searchBar.alpha = 0.0
          tableView.view.frame.height = CGRect(x: 0, y: 0, width: UIScreen.mainScreen().bounds.width, height: UIScreen.mainScreen().bounds.height)
                    }, completion: {
                        (value: Bool) in
                        //do nothing after animation
                })
Run Code Online (Sandbox Code Playgroud)