访问平移手势的速度

问题描述 投票:-2回答:2

我想获得平移手势的速度,我想使用发送者的速度属性,但它似乎不起作用:

@IBAction func handleGesture(sender: AnyObject) {
    let v = sender.velocity
}

但它抛出一个错误说:

"ambiguous use of 'velocity'"

如果那不是获取平移手势速度的方式,那是什么?

ios objective-c swift uipangesturerecognizer
2个回答
6
投票

UIPanGestureRecognizer没有名为velocity的属性。你应该使用velocityInView方法。

func userPanned(sender: UIPanGestureRecognizer) {
    let v = sender.velocityInView(self.view)
}

0
投票

sender.velocityInView(self.view)为您提供每秒像素的速度。为了获得准确的速度,您需要将速度更改为每分钟像素,将其除以60,如下所示:

sender.velocityInView(self.view).x / 60 - 对于水平

sender.velocityInView(self.view).y / 60 - 垂直

因此,您可以通过添加初始值来更新位置,如下所示:

是initialLocation:CGPoint? - >全球

initialLocation.x =(initialLocation ?? 0)

(initialLocation.x)! =(initialLocation.x)! +(sender.velocity(in:colorSlider!)。x / 60) - 对于水平

(initialLocation.y)! =(initialLocation.y)! +(sender.velocity(in:colorSlider!)。y / 60) - 垂直

谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.