Process touches behind the UINavigationBar
In my application, I'm displaying a fullscreen image in a 320 x 480 frame. After I display the image, I fade the navigation bar out to allow the user to see the whole picture. When the user taps in the area where the navigation bar was, I would like to bring the navigation bar back.
This is very similar to what happens in the iPhone Photos app.
Unfortunately, after I've hidden the UINavigationBar, I can't process touches on the screen w开发者_高级运维here the navigation bar once was. I believe this is because the origin of the parent view is right below the navigation bar:
Nav Bar http://shortybox.com/navbar.gif
How can I process touches in this area to bring the nav bar back?
You can override hitTest:withEvent:
on UIWindow. See this answer.
Are you fading out, and then removing the bar from its superview? If you just set its alpha to zero, it will still trap your clicks. Try removing it, or hiding it.
It looks like there isn't currently an easy solution to this. The default UINavigationBar is gobbling up all of my events. I ended up hiding the default navigation bar throughout my entire application, and adding a dummy UINavigationBar in interface builder.
By doing so, I lost the default "Back" buttons that come with the NavigationController, but the app is now functional.
精彩评论