I have an app with quite a complex UI, there's a big UIView
called the cover with a UITableView
underneath it. The tableView
is configured with a tableHeaderView
of the same height as the cover. As the tableView
scrolls up, the cover moves up the screen (with various fancy animations) using a UIScrollViewDelegate
. To allow users to scroll the tableView
by swiping the cover, I've overridden the - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
method to always return false
.
I've now added some UIButton
views to the cover. I've managed to make them respond to taps by changing the way I've overriden the pointInside
method like this:
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
BOOL isInside = [_directionsButton pointInside:[_directionsButton convertPoint:point fromView:self] withEvent:event];
return isInside;
}
The only problem now is that if you start a swipe gesture on the button, it's caught by the button and the tableView
doesn't scroll. I want to be able to ignore swipe gestures on the button (so really let them pass to the view below).
Normally, I would just make the cover view the tableHeaderView
, which seems to handle this kind of behaviour really well. However, I can't do this here, due to some unique animations done on the cover as the table scrolls.
Did you tried identifying the Gestures using Gesture Recognisers and doing action method that is to be called when the specified gesture is detected?
Please check this link. This may help you for that.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With