[英]Access the velocity of a pan gesture
我想获得平移手势的速度,我想使用发送者的速度属性,但它似乎不起作用:
@IBAction func handleGesture(sender: AnyObject) {
let v = sender.velocity
}
但它抛出一个错误说:
"ambiguous use of 'velocity'"
如果这不是访问平移手势速度的方法,那是什么?
UIPanGestureRecognizer 没有名为velocity
的属性。 您应该使用velocityInView
方法。
func userPanned(sender: UIPanGestureRecognizer) {
let v = sender.velocityInView(self.view)
}
对于速度,您需要执行以下操作
sender.velocityInView(self.view)
为您提供像素。 为了获得速度,您需要将其除以 60,如下所示:
sender.velocityInView(self.view).x / 60 // For horizontal
sender.velocityInView(self.view).y / 60 // For vertical
因此,您可以通过添加初始值来更新位置,如下所示:
var initialLocation: CGPoint? // Global
initialLocation.x = (initialLocation ?? 0)
(initialLocation.x)! = (initialLocation.x)! + (sender.velocity(in: colorSlider!).x / 60) // For horizontal
(initialLocation.y)! = (initialLocation.y)! + (sender.velocity(in: colorSlider!).y / 60) // For vertical
斯威夫特 5
@objc func customPanGesture(_ sender: UIPanGestureRecognizer) {
sender.velocity(in: self.view)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.