gpt4 book ai didi

ios - 如何在 UIView 上获得长按时间

转载 作者:可可西里 更新时间:2023-11-01 00:37:15 24 4
gpt4 key购买 nike

我想在调用 touchesEnded 方法时在 UIView 上获得长按时间。

我在 UIEvent 中寻找类似“时间”或“持续时间”的属性,但找不到。我该怎么办?

(我正在创建一个游戏,我想更改图形大小以响应长按时间。例如让大小 = 20 * long_press_sec )

环境:Xcode7.0.1Swift2.0

最佳答案

我认为您无法在标准的长按手势识别器上自动获取该信息。您可以使用 minimumPressDuration 属性设置触发所需的时间,但随后会触发。

我已经有一段时间没有用手势识别器做任何复杂的事情了,但是在稍微查看了文档之后,我认为您可以通过以下方式获得手势时间:

在调用您的操作方法时检查手势识别器的状态。当您看到 UIGestureRecognizerStateBegan 状态时记录时间(并记住添加最短手势时间,因为在最短长按持续时间过去之前,您的方法不会触发)。

当手势完成时,您的操作方法将以 UIGestureRecognizerStateEnded 状态再次调用。到那时,您应该能够计算手势的总持续时间。

编辑:

从@ManikandanD 的代码开始:

var longPressBeginTime: NSTimeInterval
var gesture: UILongPressGestureRecognizer =
UILongPressGestureRecognizer(target: self, action: "longPressed:")
gesture.minimumPressDuration = 0.2
self.Your_View_name.addGestureRecognizer(gesture)

func longPressed(longPress: UIGestureRecognizer)
{
if (longPress.state == UIGestureRecognizerState.Ended)
{
let gestureTime = NSDate.timeIntervalSinceReferenceDate() -
longPressBeginTime + longPress.minimumPressDuration
println("Gesture time = \(gestureTime)")
}
else if (longPress.state == UIGestureRecognizerState.Began)
{
println("Began")
longPressBeginTime = NSDate.timeIntervalSinceReferenceDate()
}
}

关于ios - 如何在 UIView 上获得长按时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32924746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com