流程触及UINavigationBar

时间:2009-10-12 15:18:06

标签: iphone objective-c cocoa-touch uikit

在我的应用程序中,我在320 x 480帧中显示全屏图像。显示图像后,我淡出导航栏以允许用户查看整个图片。当用户点击导航栏所在的区域时,我想重新启动导航栏。

这与iPhone照片应用程序中发生的情况非常相似。

不幸的是,在我隐藏了UINavigationBar之后,我无法处理导航栏曾经的屏幕上的触摸。我相信这是因为父视图的原点位于导航栏的正下方:

Nav Bar http://shortybox.com/navbar.gif

如何处理此区域中的触摸以使导航栏恢复?

3 个答案:

答案 0 :(得分:1)

您可以在UIWindow上覆盖hitTest:withEvent:。请参阅this answer

答案 1 :(得分:0)

你是否逐渐淡出,然后从超级视图中删除了该栏?如果您只是将其alpha设置为零,它仍会捕获您的点击次数。尝试删除它,或隐藏它。

答案 2 :(得分:0)

看起来目前还没有一个简单的解决方案。默认的UINavigationBar吞噬了我的所有事件。我最终在整个应用程序中隐藏了默认导航栏,并在界面构建器中添加了一个虚拟UINavigationBar。

通过这样做,我丢失了NavigationController附带的默认“后退”按钮,但该应用程序现在正在运行。