在我的应用程序中,我在320 x 480帧中显示全屏图像。显示图像后,我淡出导航栏以允许用户查看整个图片。当用户点击导航栏所在的区域时,我想重新启动导航栏。
这与iPhone照片应用程序中发生的情况非常相似。
不幸的是,在我隐藏了UINavigationBar之后,我无法处理导航栏曾经的屏幕上的触摸。我相信这是因为父视图的原点位于导航栏的正下方:
Nav Bar http://shortybox.com/navbar.gif
如何处理此区域中的触摸以使导航栏恢复?
答案 0 :(得分:1)
您可以在UIWindow上覆盖hitTest:withEvent:
。请参阅this answer。
答案 1 :(得分:0)
你是否逐渐淡出,然后从超级视图中删除了该栏?如果您只是将其alpha设置为零,它仍会捕获您的点击次数。尝试删除它,或隐藏它。
答案 2 :(得分:0)
看起来目前还没有一个简单的解决方案。默认的UINavigationBar吞噬了我的所有事件。我最终在整个应用程序中隐藏了默认导航栏,并在界面构建器中添加了一个虚拟UINavigationBar。
通过这样做,我丢失了NavigationController附带的默认“后退”按钮,但该应用程序现在正在运行。