繁体   English   中英

访问平移手势的速度

[英]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)
}

Apple 开发者文档- 速度(in:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM