Во-первых, вам нужно реализовать UISwipeGestureRecognizer
включают setup()
функцию в viewDidAppear
func setup() {
let swipeDown = UISwipeGestureRecognizer(target: self, action: #selector(down))
swipeDown.direction = .down
let swipeUp = UISwipeGestureRecognizer(target: self, action: #selector(up))
swipeUp.direction = .up
self.view.addGestureRecognizer(swipeDown)
self.view.addGestureRecognizer(swipeUp)
searchBar = UISearchBar(frame: CGRect(x: 0.0, y: 0.0, width: self.view.frame.size.width, height: 40.0))
if let searchBar = searchBar
{
searchBar.backgroundColor = UIColor.red
self.view.addSubview(searchBar)
}
}
Тогда ваши две функции вверх и вниз
func down(sender: UIGestureRecognizer) {
print("down")
//show bar
UIView.animate(withDuration: 1.0, animations: {() -> Void in
self.searchBar!.frame = CGRect(x: 0.0, y: 64.0, width: self.view.frame.width, height: 40.0)
}, completion: { (Bool) -> Void in
})
}
func up(sender: UIGestureRecognizer) {
print("up")
UIView.animate(withDuration: 1.0, animations: {() -> Void in
self.searchBar!.frame = CGRect(x: 0.0, y: 0.0, width: self.view.frame.width, height: 40.0)
}, completion: { (Bool) -> Void in
})
}
Вы можете добавить Bool isShowing
избежать ненужные анимации. Затем выполните делегат панели поиска textDidChange
, чтобы изменить результаты поиска по типу пользователя.
func searchBar(_ searchBar: UISearchBar,textDidChange searchText: String)`
Все, что вам нужно сделать сейчас, отображать результаты в UISearchController
.
Примечание Использование салфетки вверх/вниз движение может мешать прокрутке UIScreachController