Zuerst müssen Sie UISwipeGestureRecognizer
gehören die setup()
Funktion in 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)
}
}
Dann Ihre beiden Funktionen auf und ab
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
})
}
Sie Bool isShowing
hinzufügen können, implementieren zu vermeiden unnötige Animationen. Implementieren Sie anschließend den Suchleistendelegaten textDidChange
, um die Suchergebnisse zu ändern, wenn der Benutzer eingibt.
func searchBar(_ searchBar: UISearchBar,textDidChange searchText: String)`
Alles, was Sie jetzt tun müssen, ist in einem UISearchController
Ihre Ergebnisse anzuzeigen.
Hinweis Mit Swipe nach oben/unten Bewegung könnte mit dem Scrollen des UIScreachController
stören