【问题标题】:One of two practically identical UITapGestureRecognizers acting much slower than the other两个几乎相同的 UITapGestureRecognizer 之一的行为比另一个慢得多
【发布时间】:2015-11-25 05:34:40
【问题描述】:

我有 2 个几乎相同的点击手势,如下所示:

let minusGesture = UITapGestureRecognizer(target: self, action: Selector("minusSlider:"))
minusGesture.numberOfTapsRequired = 1
downArrowImageView.addGestureRecognizer(minusGesture)

let plusGesture = UITapGestureRecognizer(target: self, action: Selector("plusSlider:"))
plusGesture.numberOfTapsRequired = 1
upArrowImageView.addGestureRecognizer(plusGesture)

它们触发几乎相同的动作,如下所示:

func minusSlider(sender: UITapGestureRecognizer) {
    if mySlider.value > mySlider.minimumValue {
        mySlider.value -= 1
    }
}

func plusSlider(sender: UITapGestureRecognizer) {
    if mySlider.value < mySlider.maximumValue {
        mySlider.value += 1
    }
}

这是上下文的屏幕截图。基本上点击相应的箭头会将滑块值向上或向下移动 1。

当我点击向上箭头时,它的响应速度非常快。我可以快速点击,它工作正常。但是,当我点击向下箭头时,它触发的动作非常缓慢。只有当我敲得很慢时它才有效。如果我以更快的速度点击它会非常无响应,每隔几次点击就会工作一次,并且在其余时间我都会收到此错误:

<_uisystemgesturegategesturerecognizer:>: 触摸:下次触摸前无法接收系统手势状态通知

为什么这个错误只发生在向下箭头点击手势而不是向上箭头上?除了我在上面发布的内容以及它们位于我视野的相对边缘这一事实之外,没有其他任何东西可以将这两个手势分开。

【问题讨论】:

  • 为什么不用按钮来代替 imageview 和 tapgestures
  • 两种方式我都得到相同的行为。试图了解原因。
  • 好吧。现在检查这种方式,将滑块的最大值设置为默认值,现在尝试使用向下箭头点击并检查其工作冷却。然后尝试使用向上箭头并查看其行为是否滞后
  • 试过了,向上箭头在任何时候都很好用。向下箭头仍然滞后。
  • 您是否尝试过在设置面板中关闭多任务手势

标签: ios swift uiimageview uislider uitapgesturerecognizer


【解决方案1】:

【讨论】:

  • 谢谢,它似乎被导航堆栈中自动滑动回上一个视图控制器覆盖
猜你喜欢
  • 1970-01-01
  • 2020-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多