gpt4 book ai didi

ios - 处理长按结束

转载 作者:可可西里 更新时间:2023-11-01 03:35:59 24 4
gpt4 key购买 nike

我有一个 UILongPressGestureRecognizer 附加到 Controller 的 view。我想卡住一些计时器,直到用户握住他的手指。问题是我无法确定触摸事件何时结束。也许我应该在手势识别器的属性 state 上使用观察者?或者还有其他方法可以做到这一点?

简介

在controller的view上放置了一个UIScrollView(实现分页图库),可以通过拖动(滑动)来切换页面。还有一个 UITapGestureRecognizer,它也附加到 Controller 的 view,它处理一些其他任务。

最佳答案

是的,您可以通过查看识别器的状态来完成此操作,但您不需要使用观察器。您应该在手势识别器的委托(delegate)中声明一个 Action 方法,该方法将在识别器触发时调用。只要识别器的状态发生变化,就会自动调用该方法。

您需要寻找状态 UIGestureRecognizerStateBegan 来开始您的计时器,您需要寻找状态 UIGestureRecognizerStateEnded、UIGestureRecognizerStateFailed 和 UIGestureRecognizerStateCancelled 来暂停您的计时器。

只需将您的手势与 Interface Builder 中的 Action 联系起来。

-(IBAction)longPressBegan:(UILongPressGestureRecognizer *)recognizer
{
if (recognizer.state == UIGestureRecognizerStateBegan)
{
// Long press detected, start the timer
}
else
{
if (recognizer.state == UIGestureRecognizerStateCancelled
|| recognizer.state == UIGestureRecognizerStateFailed
|| recognizer.state == UIGestureRecognizerStateEnded)
{
// Long press ended, stop the timer
}
}
}

关于ios - 处理长按结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14365370/

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