我有一个相当大的(屏幕状态)UIControl,我将其放入 UIScrollView。作为一个 UIControl,它会劫持所有的触摸,并且从控件内部开始的任何拖动都不会被 UIScrollView 反映。
这个控件只需要UIControlEventTouchUpInside,那么有没有办法“只”监听那个事件呢?
我的第一直觉是覆盖 hitTest:withEvent: 并在检测到拖动时返回超级视图,但这并没有提供有关控制事件类型的任何信息。
我最后的手段是让它成为一个通用的 UIView,但如果可能的话,我宁愿不走那条路。
编辑:
抱歉,为了清楚起见,我故意将 delaysContentTouches 设置为 NO 以支持我正在处理的屏幕上的其他功能。意外的副作用导致了 Joel H 的第二点。