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?
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!