IOS7:UINavigationController中的UIScrollView偏移量
目前我正在将我的应用程序迁移到ios 7上,并且我一直在新的navigationcontroller / bar管理上停留了好几个小时。
之前,当我们有一个导航控制器时,我们有一个像这样的代码片段:
UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:[[MainViewController alloc]init]];
在界面构建器中,我们可以选择为视图设置现有导航栏,并且所有内容都与实际视图的内容相匹配。
好吧,现在,我不知道如何正确使用界面生成器进行设计。 我仍然有我的片段来初始化我的navcontroller。 然而,在我的MainViewController的界面生成器中,如果我将状态栏设置为半透明或不透明的导航栏,则顶部的偏移量为44px(请参见下文)。
Interface Builder __________________________结果
现在,如果我将状态栏设置为none,顶部没有偏移量,但由于导航栏导致模拟器上的视图更小,因此界面构建器中视图的底部被切断。
Interface Builder __________________________结果
我想我在这里真的错过了一些东西,但在iOS7转换指南中找不到任何主题或苹果信息。
谢谢你的帮助
编辑
正如我们在图片中看到的那样,视图的第一个孩子是一个包含两个标签的UIScrollView,当没有滚动视图时,问题不会出现。 它也出现,如果它是一个UITableView。 如果标签位于UIScrollView之外,则该标签没有偏移量。
好,所以我找到了解决方案,我在我的控制器中设置了属性:
self.automaticallyAdjustsScrollViewInsets = false
我不明白这个属性的真正好处,但是(或者为什么默认值是真的)
我发现的唯一文件是在那里:
更新
在iOS中11 automaticallyAdjustsScrollViewInsets
已被弃用
你现在应该使用:
self.tableView.contentInsetAdjustmentBehavior = .never
我也鼓励你检查这个问题及其答案,以更好地理解这些属性
@ Justafinger的回答对我来说也是一种魅力。
只是想补充一点,该设置也可以通过界面构建器轻松调整。
我遇到了同样的问题,但是我在界面生成器中的ViewController上发现了一个相当奇怪的属性,这似乎是造成这种情况的原因。 有一个“Extend Edges”复选框。 我删除了“顶部酒吧”检查,并且所有事情都开始为我正确布置。
链接地址: http://www.djcxy.com/p/90315.html