【问题标题】:UIGestureRecognizer rendered off screenUIGestureRecognizer 在屏幕外渲染
【发布时间】:2012-08-13 20:27:00
【问题描述】:

我有一个UIGestureRecognizer,它附加到一个UILabel,它在屏幕外渲染,稍后进入视图。进入视野后,点击手势识别器不起作用。如果在视图中渲染,它可以正常工作。

任何想法为什么这不起作用?我该如何解决?

【问题讨论】:

  • 你有没有试过在标签进入视图后添加识别器?
  • 标签被带入视图后是否有其他(透明)视图覆盖/重叠标签?
  • 我通过继承 UILabel 并实现 hitTest:withEvent: 解决了这个问题

标签: ios cocoa-touch uikit uigesturerecognizer uitapgesturerecognizer


【解决方案1】:

我严重怀疑它是否与将其“渲染”到屏幕外有关(你的意思是什么)。无论如何,我建议当标签被带到屏幕上时,您验证标签是否已启用,然后执行以下操作:

NSArray *grs = label.gestureRecognizers; 
for(UIGestureRecognizer *gr in grs) {
  NSLog(@"Recognizer: %@ enabled=%d state=%d del=%@", NSStringFromClass[gr class]), gr.enabled, gr.state, gr.delegate);
}

比较屏幕外和屏幕上的结果会很有趣。事情正在发生,只需要找出不同的属性。但是没有办法获得目标/动作对的列表。

【讨论】:

    【解决方案2】:

    子类化UILabel 并实现hitTest:withEvent: 解决了这个问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-19
      • 2015-04-08
      • 1970-01-01
      • 2012-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      相关资源
      最近更新 更多