我有一个向上滑动菜单,其中添加了平移手势。当前,如果它完全打开,并且我将手指放在底部并拖动,菜单的顶部将贴紧我的手指,而不是简单地继续从手指位置拖动。
下面是我的平移手势功能,我知道它正在弹出菜单顶部,因为我正在使用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
}
}