我有一个错误,无法识别只能通过滚动到达的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
感谢您的任何建议。 这是可视化调试器中的图像。蓝色是否没有接收触摸(点击)事件。
答案 0 :(得分:2)
此方法属于UIView,您需要子类化UIScrollView。在根视图中的每次触摸时都会调用此方法。在我的测试中,这个方法总是被调用两次。
请从文档中考虑:
“此方法忽略隐藏的视图对象,禁用用户交互或alpha级别小于0.01的视图对象。此方法在确定匹配时不会考虑视图的内容。”