我想知道如何在 iPhone 屏幕上的任何位置跟踪触摸,并且仍然让 UIButtons 响应点击。
我对 UIView 进行了子类化,使其成为全屏视图和层次结构中的最高视图,并覆盖了它的 pointInside:withEvent 方法。如果我返回 YES,我可以跟踪屏幕上任何位置的触摸,但按钮没有响应(可能是因为视图被指示处理和终止触摸)。如果我返回 NO,则触摸会通过视图并且按钮会响应,但我无法跟踪触摸。
我需要子类 UIButton 还是可以通过响应者链实现?我究竟做错了什么?
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{
return NO;
}
//only works if pointInside:withEvent: returns YES.
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
NSLog(@"began");
[self.nextResponder touchesBegan:touches withEvent:event];
}
//only works if pointInside:withEvent: returns YES.
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
NSLog(@"end");
[self.nextResponder touchesEnded:touches withEvent:event];
}