iOS 7 - 使 UINavigationBar 扩展到屏幕顶部
Posted
技术标签:
【中文标题】iOS 7 - 使 UINavigationBar 扩展到屏幕顶部【英文标题】:iOS 7 - Make UINavigationBar extend to top of the screen 【发布时间】:2014-01-06 14:30:20 【问题描述】:我是为 ios 制作应用程序的新手,这个问题已经困扰了我好几个小时。
模态弹出视图(右侧)中的导航栏没有正确延伸到屏幕顶部,就像在其他应用程序中一样。我知道我可以禁用自动布局并执行CGFloat newheight = self.InfoNavigationBar.frame.size.height + 20;
[self.InfoNavigationBar setFrame:CGRectMake(0, 0, 320, newheight)];
之类的操作,但如果可能的话,我想在启用自动布局的情况下执行此操作。
现在,在我的 iPhone 上查看时的视图如下所示:
我怎样才能让它正确地延伸到屏幕顶部,而将状态栏留在上面?如果这可以在 IB 中完成,而不必求助于代码中的所有这些,那就太好了。
(编辑:SO 上的其他一些与 iOS 相关的问题表明 IB 和 Storyboards 是两个不同的东西。我什至不知道哪个是哪个,看看第一个屏幕截图,我正在使用任何那个.)
【问题讨论】:
【参考方案1】:显然,像这样覆盖 UINavigationBar 的 positionForBar 方法就足够了:https://***.com/a/18968920/1058399 它仍然感觉像一个肮脏的黑客,但在有更好的方法之前,我会这样做。
编辑以防像我这样的新手阅读此内容: 当您希望您的应用程序支持横向模式时,所有这些都会崩溃。导航栏在横向模式下应该更小,如果您将视图包装在导航控制器中,这会自动为您完成。不要只放置导航栏并期望它们“正常工作”。
【讨论】:
以上是关于iOS 7 - 使 UINavigationBar 扩展到屏幕顶部的主要内容,如果未能解决你的问题,请参考以下文章
使 UINavigationBar 消失和出现在触摸,模仿 iOS 上的 safari
在 ios 7 中如何增加 UINavigationbar 的大小
覆盖 UINavigationBar 时 iOS 7 状态栏变黑
防止 iOS 7 UINavigationBar 使用 UIAppearance 为 barTintColor 更改设置动画