У меня есть скользящее меню, к которому добавлен жест панорамирования. В настоящее время, если он полностью открыт, и я помещаю палец внизу и перетаскиваю его, верхняя часть меню будет привязана к моему пальцу, а не просто продолжит перетаскивать его из местоположения пальца.
Ниже представлена моя функция панорамирования, я знаю, что она привязана к верхней части меню, потому что я использую Menu.frame.origin.y
, но я не могу придумать, что еще использовать.
if sender.state == .changed {
if Menu.frame.origin.y < menuTopMaxHeight {
animateMenuUp(sender: sender)
sender.isEnabled = false
} else {
Menu.frame.origin = CGPoint(x: Menu.frame.origin.x, y: dragLocation.y)
}
}
Мои анимационные функции
func animateMenuUp(sender: UIGestureRecognizer) {
let menuTopAnchor = self.view.bounds.height - 300
UIView.animate(withDuration: 0.3) {
self.menu.frame.origin = CGPoint(x: self.menu.frame.origin.x, y: menuTopAnchor)
self.screenOverlay.alpha = 0.50
}
}
func animateMenuDown(sender: UIGestureRecognizer) {
let menuBottomAnchor = self.view.bounds.height - 62
UIView.animate(withDuration: 0.3) {
self.menu.frame.origin = CGPoint(x: self.menu.frame.origin.x, y: menuBottomAnchor)
self.screenOverlay.alpha = 0
}
}