我有UITableView
UISearchBar
。我需要通过用户操作(按下按钮)显示/隐藏我的searchBar
:
我尝试使用此代码:
if self.tableView.contentOffset.y == 0 {
self.tableView.contentOffset = CGPoint(x: 0.0, y: self.searchBar.frame.size.height)
}
来自this问题。
其实我已经尝试了所有这些答案。所有这些都只是滚动我的UITableView
,每次我滚动UITableView
- searchBar
时都会出现。
我试着做这样的事情:
self.newsTableView.tableHeaderView = nil; //Hide
和
self.newsTableView.tableHeaderView = self.SearchBar; //Show
但UITableView
不想返回searchBar
;
如何解决此问题?
我需要按操作隐藏searchBar
,而不是滚动我的UITableView
(隐藏searchBar.hidden = true
}实际上,searchBar.hidden = true
有效,但有一个空格而不是{{1 }}
答案 0 :(得分:2)
对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
})
答案 1 :(得分:2)
在ViewController.swift文件的Xcode 7.3中,它适用于我
CategoryTableView.tableHeaderView = searchController.searchBar // show
CategoryTableView.tableHeaderView = nil // hide
searchController.active = false
答案 2 :(得分:1)
希望这可以解决您的问题。在启动tableview时调用它来隐藏searchBar,当你向下滚动它时会出现
var newBounds: CGRect? = self.newsTableView.bounds
newBounds?.origin.y = 0
newBounds?.origin.y = newBounds!.origin.y + self.searchBar.bounds.size.height
然后设置tableView的新边界