如何使用exclusivetouch在uiscrollview中禁用激活多个项目?

时间:2013-11-14 11:26:19

标签: ios objective-c ipad uiview uiscrollview

可能是小问题,但我无法解决问题。目标平台是iOS6。

问题描述:我有一个视图控制器和一个滚动视图作为子视图。在滚动视图中,我有一个缩略图网格。当我试图一次触摸多个缩略图时,所有缩略图都被激活。

尝试解决方案:

self.view.multipleTouchEnabled = NO;
self.view.exclusiveTouch = YES; 

这不能解决我的问题。有什么我想念的吗?

1 个答案:

答案 0 :(得分:0)

这个问题的解决方案有两个概念。 (1)使滚动视图同步处理触摸事件。

self.view.scrollview.multipleTouchEnabled = NO;
self.view.scrollview.exclusiveTouch = YES; 

现在这将避免竞争条件,但在第一次触摸处理后,第二次触摸将被处理。

(2)为了避免这种顺序处理,我需要相互排斥以避免竞争条件。

  • 我在scrollview和委托中使用了成员布尔标志。
  • 现在,只要第一次触摸处理,我就将标志设置为YES。现在,当第二次触摸尝试处理时,我正在检查此标志(如互斥)。
  • 我的情况是忽略第二次触摸事件,因为我在第一次触摸时导航到下一个viewcontroller。您可以根据需要进行处理。

希望这有助于其他一些正面临这类问题的人。