我想跟踪指定的 UIViewController 子类中的所有用户触摸,例如 MyViewController。
由于这个 UIViewController 可能包含 UIKit-Elements,例如 UIButtons 等。我想在 MyViewController 的视图中的其他视图之上放置一个清晰的触摸跟踪 UIView。
现在我将触摸事件发送到 UIView,但我不知道如何将触摸委托给其他子视图。
我已经尝试遍历所有 MyViewController 的视图子视图(触摸跟踪 UIView 除外)并向它们发送 touchesBegan:withEvent:、touchesMoved:withEvent: 等。
但这不适用于 UICollectionViews。
我基本上需要的是跟踪 MyViewController 的视图框架中的所有触摸事件。MyViewController 本身可以继承需要响应触摸事件的各种其他视图。
我还在这里(http://stackoverflow.com/questions/8423174/detecting-all-touches-in-an-app)找到了继承 UIWindow 并覆盖 sendEvent 的想法:这在我的情况下是可能的,但后来我无论 MyViewController 是否可见,都必须启用/禁用触摸跟踪。另外我还不知道如何区分 touchesBegan:withEvent、touchesMoved:withEvent: 等。
提前致谢。
干杯,浴缸
在 MyViewController.m
- (void)loadView
{
[super loadView];
VETouchTrackingView *touchTrackingView;
touchTrackingView = [[VETouchTrackingView alloc] initWithFrame:self.view.frame];
touchTrackingView.userInteractionEnabled = YES;
self.touchTrackingView = touchTrackingView;
[self.view addSubview:self.touchTrackingView];
[self.view bringSubviewToFront:self.touchTrackingView];
}