2010-03-31 128 views
3

我在视图控制器中使用ScrollviewDelegate协议,但我在该自定义视图中使用自定义 UIView(UIImageview)触摸UIScrollview?

由于某种原因,touchMoved未被调用。有没有人有任何想法,为什么这是(不)发生?

回答

7

如果启用UIScrollView中的滚动功能,则不会将touchMoved事件传播到滚动视图内容。如何解决方法取决于您想实现的目标。在我的应用我需要的拖累内UIScrollView一个对象,我的确在contentsView触摸处理以下为:

  1. 在的touchesBegan:事件我检查,如果我拍了拍对象被拖动。如果是 - 然后禁用滚动UIScrollView
  2. 然后当滚动被禁用我的内容视图开始接收touchesMoved事件,我可以“拖动”我的对象在那里。
  3. touchesEnded:我重新启用了滚动。

如果你想更复杂的东西,你可以继承的UIScrollView并尝试重写它的触摸处理程序(见hitTest:withEvent:法)