UITapGestureRecognizer 的动作在进行中时无法调用?
Posted
技术标签:
【中文标题】UITapGestureRecognizer 的动作在进行中时无法调用?【英文标题】:Action of UITapGestureRecognizer cannot be called while it’s already in progress? 【发布时间】:2014-05-07 08:27:38 【问题描述】:我有一个UITapGestureRecognizer
设置,它执行0.8s
UIView
动画。我想要做的是允许用户在0.8s
期间打断。我将处理事物的动画方面(即使事物从其当前位置开始动画),但当前的问题是在 0.8s
期间的任何进一步点击都不会从识别器调用 @selector
。在第一次通过 @selector
完成之前,任何后续的点击都会被阻止。
只是为了确认一下,我需要一种方法来允许调用来自同一 UITapGestureRecognizer
的同一 @selector
,即使它还没有 return
。那时我可以覆盖动画,告诉它从当前位置开始,并让它完成,即使用户向识别器发送垃圾邮件。
有没有办法做到这一点?我考虑过线程,但我的印象是我不应该在后台线程上进行 UI 更新,所以当有可能是首选方式时,我犹豫是否尝试。
【问题讨论】:
你能发布你的动画代码吗? 这只是一个标准的UIView animateWithDuration
调用,它设置了一个转换。
【参考方案1】:
好吧,如果你想在动画期间允许用户交互,添加 UIViewAnimationOptionAllowUserInteraction 选项,这里是示例,
[UIView animateWithDuration:0.8
delay:0.0
options:UIViewAnimationOptionAllowUserInteraction
animations:^
// your animations
completion:^(BOOL finished)
// completion
];
【讨论】:
嗯,明白了。它在被调用时阻塞了整个线程。有趣。以上是关于UITapGestureRecognizer 的动作在进行中时无法调用?的主要内容,如果未能解决你的问题,请参考以下文章
使用 UITapGestureRecognizer 无法识别的选择器
UIlabel 中的 UITapGestureRecognizer 错误
带有点击事件的 UITapGestureRecognizer