开发者

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜