IOS / Objective-C:使用HitTouch在ScrollView上传递触摸事件以查看下面的内容

时间:2018-01-14 16:03:38

标签: ios uigesturerecognizer hittest

我有一个错误,无法识别只能通过滚动到达的textview底部区域的触摸。使用可视化调试器,我发现滚动视图阻挡了视图的底部。有关SO和一些Apple文档以及this excellent article here的一些问题建议,当您有一个阻止下面的视图时,您需要实现以下方法的某个版本:

  - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
    NSLog(@"hit test firing");
    UIView *hitTestView = [super hitTest:point withEvent:event];
    if (hitTestView == self) {
        hitTestView = nil;
    }
    return hitTestView;
}

-

然而,我对这种方法何时触发以及观点是什么感到困惑。在上面的代码中,我在哪里指定scrollview是阻止我的textview?我也得到了上面代码的错误:没有可见的接口声明了选择器hitTestPointWithEvent

感谢您的任何建议。 这是可视化调试器中的图像。蓝色是否没有接收触摸(点击)事件。

enter image description here

1 个答案:

答案 0 :(得分:2)

此方法属于UIView,您需要子类化UIScrollView。在根视图中的每次触摸时都会调用此方法。在我的测试中,这个方法总是被调用两次。

请从文档中考虑:

“此方法忽略隐藏的视图对象,禁用用户交互或alpha级别小于0.01的视图对象。此方法在确定匹配时不会考虑视图的内容。”