在导航控制器中使用 Auto Layout 的主视图和滚动视图之间的差距

Posted

技术标签:

【中文标题】在导航控制器中使用 Auto Layout 的主视图和滚动视图之间的差距【英文标题】:Gap between main view and scroll view using Auto Layout in navigation controller 【发布时间】:2015-09-08 10:36:55 【问题描述】:

我在管理嵌入导航视图控制器的滚动视图时遇到了一些问题。我正在使用自动布局,我会尽力解释问题。

    我在控制器的主视图中嵌入了一个滚动视图,并将顶部、左侧、底部和右侧边框固定到主视图的边框。 我在滚动视图中嵌入了一个标准的UIView,并给它一个800点的固定高度。这应该充当我所有控件的容器(我们将其命名为 content view)。然后我再次将它的顶部、左侧、底部和右侧边框固定到滚动视图的边框上。因为滚动视图的后代视图的底部空间约束为负,所以我将其调整为 0。 对于宽度,我用 CTRL 键从内容视图拖到主视图并添加了 等宽 约束。 最后,我添加了一个图像视图并将其放置在我的内容视图的顶部中心,添加了一些进一步的琐碎约束。

上面显示了我刚刚描述的情况的故事板(在文档大纲中,您应该看到我定义的所有约束)。

我的滚动视图工作正常,它滚动良好,并且图像视图在它应该在的位置很好地居中。但是,导航栏的结尾和滚动视图的开头之间存在间隙,我不知道为什么。它似乎和导航栏一样高,但我不知道如何修复它。下面显示的图像应该让您明白我在说什么(为清楚起见,内容视图以灰色突出显示)。

我没有写一行代码来实现这个结果。我非常感谢任何形式的帮助,我已准备好为您提供帮助我解决问题所需的所有信息。

【问题讨论】:

我认为你应该取消选中视图控制器的Adjust scrollview Insets @EICaptain 谢谢,这解决了问题。不知道会这么容易。请将您的评论转化为答案,以便我有机会批准。 【参考方案1】:

我认为你应该取消选中 Adjust Scrollview Insets viewcontroller 的属性来摆脱这个......

【讨论】:

【参考方案2】:

您必须取消选中 Adjust Scrollview Insets

【讨论】:

以上是关于在导航控制器中使用 Auto Layout 的主视图和滚动视图之间的差距的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 8 splitviewcontroller 主视图控制器不会在旋转时调整高度

使用导航栏后退按钮返回主视图

ViewController - (0,0) 处的主视图元素被导航栏遮挡

为啥导航栏徽标不显示在主视图中

视图控制器 IOS 视图间切换

如何退出导航控制器?