How to send touch events to superview in iOS?
ios, uievent, uiresponder, uiview
Solution
Set the view's `userInteractionEnabled` property to `NO`. This lets all touches through to the view behind it.
You can set it in the interface builder/storyboards in the attributes inspector, or in code:
yourView.userInteractionEnabled = NO;
For when you have a transparent view with a button in it:
Make a subclass of that view and override the `pointInside` method. The way I do it, is to give the button's frame to the subclass as a property, to check for in the `pointInside` method:
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
BOOL pointInside = NO;
// Check if the touch is in the button's frame
if (CGRectContainsPoint(_buttonFrame, point)) pointInside = YES;
return pointInside;
}
Hope it helps!
Problem
I am doing an iPad app. How do I send touch events to its superview? I am adding a view which is always some other activity. On that I am adding scrollview to half the screen and in the other half I add another view. It all works fine, now I want to add a button and a small description view that will appear when button is tapped and disappear again when button is tapped again. In order to implement this I took a view which covers the entire view and made its back ground color clear. I place this button and description view into this view but it wont scroll because of transparent view. I want to make this transparent view ignore its events. Can this be done?