In my application i have a main screen, which has a subview (this is another screen), but this subview is moved 320 to the right so it is just offscreen. The effect is that the main screen moves 320 to the left, which hides the main screen and shows the other screen because it's a subview. The problem is, the other screen is not receiving touch events because it is out of the bounds of the main screen (superview). How do i get this other screen to also receive touch events so i can tap the buttons?
Asked
Active
Viewed 1,177 times
1 Answers
0
Have a look at this post on S.O. for an explanation. The solution is to implement your own hitTest using the following code:
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
BOOL isInside = [super pointInside:point withEvent:event];
// identify the button view subclass
UIButton *b = (UIButton *)[self viewWithTag:3232];
CGPoint inButtonSpace = [self convertPoint:point toView:b];
BOOL isInsideButton = [b pointInside:inButtonSpace withEvent:nil];
if (YES == isInsideButton) {
return isInsideButton;
} // if (YES == isInsideButton)
return isInside;
}
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
UIView *v = nil;
v = [super hitTest:point withEvent:event];
return v;
}