如何使UIView忽略触摸而不释放它?
我有一个UIScrollView顶部的透明UIView。 UIView通过检查三个touchesMoved事件来确定是否允许滚动视图滚动。 事件发生后,我希望视图禁用用户交互,以便滚动会发生。 用户甚至不应该注意到延迟。
但是,将视图的userInteractionEnabled设置为NO后,它会一直声明所有touchesMoved事件,直到它被释放。 这意味着用户在能够滚动之前被迫放开视图。
在视图被释放之前,使用hitTest将不起作用。 hitTest在移动时不会被调用。
我会将触摸事件发送到UIScrollView,但由于它具有自己的隐藏触摸处理,它很高兴地忽略这些事件。
任何使UIView停止声明触摸事件而不必放弃它的方法?
隐藏UIView。 根据文档:
隐藏的视图从其窗口中可视化消失,并且不会接收输入事件
有关更多信息,请参阅类参考:http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html
尝试取消触摸:
如何取消一系列UITouch事件?
ps如果有必要我假设你正在向下一个响应者传播触动:
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event {
[super touchesBegan:touches withEvent:event];
[[self nextResponder] touchesBegan:touches withEvent:event];
}
- (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent *)event {
[super touchesMoved:touches withEvent:event];
[[self nextResponder] touchesMoved:touches withEvent:event];
}
- (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent *)event {
[super touchesEnded:touches withEvent:event];
[[self nextResponder] touchesEnded:touches withEvent:event];
}
链接地址: http://www.djcxy.com/p/44261.html
上一篇: How to make a UIView ignore touches without releasing it?
下一篇: how to get the position of an object within a UIView, within a UIScrollView