【发布时间】:2013-09-28 20:34:49
【问题描述】:
我目前正在将我的应用程序迁移到 ios 7 上,并且我已经在新的导航控制器/栏管理上卡了几个小时。
以前,当我们有一个导航控制器时,我们有一个像这样的 sn-p:
UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:[[MainViewController alloc]init]];
在界面生成器中,我们可以选择为视图设置一个现有的导航栏,并且所有内容都与真实视图的内容相匹配。
好吧,现在我不知道如何使用界面生成器进行正确设计。 我仍然有我的 sn-p 来初始化我的导航控制器。但是,在我的 MainViewController 的界面构建器中,如果我将状态栏设置为半透明或不透明的导航栏,我在顶部有 44px 的偏移量(见下文)。
Interface Builder_________________________和结果
现在,如果我将状态栏设置为无,顶部没有偏移,但由于导航栏导致模拟器上的视图更小,界面构建器中视图的底部被切断。
界面生成器_________________________以及结果
我想我真的在这里遗漏了一些东西,但我在 iOS7 过渡指南中找不到任何主题或苹果信息。
感谢您的帮助
编辑
在图片中我们可以看到,视图的第一个子视图是一个包含两个标签的 UIScrollView,当没有滚动视图时问题不会出现。如果它是 UITableView,它也会出现。 如果标签在 UIScrollView 之外,则该标签没有偏移。
【问题讨论】:
-
如果不是,您可能需要使用自动布局,因此您可以确保某些视图与屏幕的顶部/底部/侧面保持一定距离
-
我确实没有使用 Autolayout,但是使用它(勾选复选框)并不能解决问题。
-
使用自动布局,您必须设置约束以使视图保持在原位。 Xcode 不会自动知道你想要什么。
-
看到您之前的编辑,我刚刚发现了您的问题。不幸的是,这不是最明显的解决方案。我没有试图重新解释它,而是使用 Youtube 上的这个视频来学习如何设置滚动视图。 youtube.com/watch?v=PgeNPRBrB18&feature=youtu.be 祝你好运。我花了好几次才完全理解他在做什么。
标签: uinavigationcontroller uinavigationbar ios7