在UIScrollview中如何实现触摸事件?

3

我在视图控制器中使用了ScrollviewDelegate协议,但是我在自定义视图中使用了自定义的UIView(UIImageview)

由于某些原因,touchMoved没有被调用。有人知道为什么会发生这种情况吗?

1个回答

7
如果UIScrollView启用了滚动,则不会将touchMoved事件传播到滚动视图内容。如何解决这个问题取决于您想要实现什么。在我的应用程序中,我只需要在UIScrollView中拖动一个对象,因此我在contentsView触摸处理程序中执行以下操作:
  1. 在touchesBegan事件中,我检查是否点击了要拖动的对象。如果是,则禁用UIScrollView中的滚动
  2. 然后,由于滚动被禁用,我的内容视图开始接收touchesMoved事件,我可以在那里“拖动”我的对象。
  3. 在touchesEnded中,我重新启用了滚动。
如果您想要更复杂的内容,可以子类化UIScrollView并尝试覆盖其触摸处理程序(还可以参见hitTest:withEvent:方法)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接