iOS 7 - 使UINavigationBar扩展到屏幕顶部

时间:2014-01-06 14:30:20

标签: objective-c ios7 uinavigationbar

我刚开始为iOS制作应用程序,这个问题一直困扰着我好几个小时。 Screenshot of Interface Builder 模态弹出窗口视图(右侧)中的导航栏未正确扩展到屏幕顶部,就像在其他应用程序中一样。我知道我可以禁用Autolayout并执行CGFloat newheight = self.InfoNavigationBar.frame.size.height + 20; [self.InfoNavigationBar setFrame:CGRectMake(0, 0, 320, newheight)];之类的操作,但是我想在启用Autolayout的情况下执行此操作,如果可能的话。 现在,在我的iPhone上查看时,视图看起来像这样:

Screenshot of app on device

如何将其正确延伸到屏幕顶部,将状态栏保留在屏幕顶部?如果可以在IB中完成它,那将是很好的,而不必在代码中完成所有这些操作。

(编辑:关于SO的一些其他iOS相关问题表明IB和Storyboard是两个不同的东西。我甚至不知道哪个是哪个,看看第一个截图,我正在使用的是什么。)

1 个答案:

答案 0 :(得分:0)

显然,覆盖你的UINavigationBar的positionForBar方法就足够了:https://stackoverflow.com/a/18968920/1058399它仍然感觉像是一个肮脏的黑客,但是除非有更好的方法,否则我会这样做。

如果有像我这样的新手阅读,请进行修改: 当您希望您的应用支持横向模式时,所有这些都会崩溃。在横向模式下,导航栏应该更小,如果您将视图包装在导航控制器中,则会自动为您完成。不要只放置导航栏并期望它们“正常工作”。