我从 swift 的长按手势中看到了一些奇怪的行为。长按的最短持续时间为 1 秒。如果我按下超过 1 秒的时间,则检测到长按。但是,如果我按下 2 秒或更长时间,则不会检测到它。到底是怎么回事?是否有一些我必须担心的最长印刷时间?我可以改变这个吗?
问问题
592 次
2 回答
0
好吧,我的错。这实际上不是我的代码,我不得不调试别人的代码。原来有一个后台线程与服务器交谈以获取更新的信息,并且该线程每秒都在尝试更新界面。所以,长按从一个视图开始,但是一秒钟过去了,它是一个不同的视图,所以长按永远不会在那个视图上完成!显然我更改了代码,所以它只会在视图发生实际变化时更新视图。现在它很少需要改变视图,所以长按工作正常。
于 2015-08-18T18:27:51.323 回答
0
长按手势识别器内置了一些默认数字。例如,您可以配置“NumberOfTapsRequire”、“numberOfTouchesRequired”、“minimumPressDuration”...等。
此外,手势识别器具有不同的状态,例如 .Failed、.Began、.Changed。
因此,默认情况下,longPressGesuture 确实会在某个时间后失败,因为它的默认时间已超过。
所以在你的情况下,它可能被读作取消。
连续手势被识别但后来被取消:
.Possible - > .Began -> .Changed(重复)-> .Cancelled
于 2015-08-18T00:41:45.510 回答