1

我已经实现了自己的自定义子类UIView并覆盖了该drawRect:方法。

在我的自定义视图中,我还想要手柄触摸,所以我也覆盖了touchesBegan,touchesMovedtouchesEnded.

这工作正常,但如果屏幕上的视图数量增加,那么我必须使用 aUIScrollView作为我的UIViewController.

一旦我的自定义UIView成为 的子视图UIScrollView,它就不会接收到触摸事件。即使我在 custom 中移动手指UIView,滚动视图也会滚动(我的所有触摸事件都转到UIScrollView)。

我该如何解决这个问题?

4

2 回答 2

7

您可以尝试几种方法:

  1. 尝试在 上设置以下属性UIScrollView

    scrollView.delaysContentTouches = NO;
    scrollView.canCancelContentTouches = NO;

    在此处查看类似的SO 问题/答案。

  2. 实施hitTest:withEvent:。看这里这里

  3. 使用UIGestureRecognizer. 看这里这里

我个人建议使用 a UIGestureRecognizer,但这取决于您的具体情况(这些选项中的任何一个都可能适合您)。

于 2013-07-27T10:41:26.227 回答
0

看看另一个问题的回复:https ://stackoverflow.com/a/4629821/193254

您也必须继承滚动视图,并实现该hitTest:方法。

于 2013-07-26T09:51:22.423 回答