UIControl和UIView的事件传递有关问题
UIControl和UIView的事件传递问题
对于UIControl子类中的
- (BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event
和
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
传递中子类监听touchbegin,传递回来给UIControl子类,UIControl子类只能监听对于的touchesBegan,而没有触发beginTracking.
解决方案:
在UIControl子类调用
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ NSLog(@"my control touch begin"); [super touchesBegan:toucheswithEvent:event]; UITouch* touch = [touches anyObject]; // Track the touch [self beginTrackingWithTouch:touch withEvent:event]; } - (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event { [super touchesMoved:toucheswithEvent:event]; // Get the only touch (multipleTouchEnabled is NO) UITouch* touch = [touches anyObject]; // Track the touch [self continueTrackingWithTouch:touch withEvent:event]; } ....end