添加到 ScrollView 的 UIView 不适合全屏,顶部有导航栏

Posted

技术标签:

【中文标题】添加到 ScrollView 的 UIView 不适合全屏,顶部有导航栏【英文标题】:UIView added to ScrollView not fitting full screen with Navigation bar at the top 【发布时间】:2015-12-12 08:26:45 【问题描述】:

编辑:我的问题的小更新,我现在作为解决方案所做的显然只是让我的滚动视图变白。这解决了我的问题,但我真正的好奇心是为什么内容视图正在执行我在下面解释的操作。仍然对在带有导航栏的 VC 中添加滚动视图时常见的格式设置感到好奇。

所以我对这里发生的事情有点困惑。我有一个顶部有导航栏的 VC,我需要向它添加一个滚动视图。所以当我这样做时,我将它拉伸到屏幕顶部导航栏的正下方,然后添加约束。 (我还将 ScrollView 背景设为红色,以便将其与内容视图区分开来)

其次,我添加了一个 UIView,我将其命名为 Content 视图,并将其拉伸到与 Scroll 视图完全相同的位置。然后也为此添加了约束。 (尚未添加任何对象)

然后我运行应用程序检查它的外观,我注意到导航栏下方有一大块红色,这意味着滚动视图在导航栏正下方的正确位置全屏,但我的内容视图不是。

我做了几件事来解决这个问题

    我将滚动视图一直延伸到 VC 的顶部,越过导航栏,但是当我运行应用程序时,我可以看到导航栏后面是红色的,我认为这表示它不正确。

    我只是将内容视图扩展到了 VC 的顶部,但这对我来说似乎也不对,尽管两者似乎都解决了问题。

所以我的问题是:

    当一般将视图添加到顶部带有导航栏的 VC 时,我应该将这些视图仅扩展到导航栏的底部,还是一直延伸到 VC 的顶部?

    我是滚动视图的新手,因为这是我第一次处理滚动视图,在这种情况下我是否遗漏了什么?还是做错了什么?

非常感谢您的帮助,谢谢。

【问题讨论】:

尝试为您的约束设置最近邻居的 0 间距,它应该可以解决您的第一个问题。另一件事,但我不确定这是问题所在,但也许您在顶部看到滚动视图,因为您的导航栏是半透明的。 我其实也是这么想的,这就是为什么我很好奇,如果在使用导航栏并添加视图时,应该为导航栏留出空间,还是只是延伸到顶部风投。例如,在我看过的很多旧教程中,当添加视图时,人们会在屏幕顶部为手机状态栏留出一小块空间。感谢您的回复! 【参考方案1】:

1) 将滚动视图一直向上移动到导航栏之外。 2) 让滚动视图与其父级的高度匹配。

【讨论】:

感谢您的回复,阿洛克。所以为了澄清,我应该删除我的内容视图的顶部和底部约束,然后将我的内容视图中的 Equal Heights 约束添加到我的滚动视图?你也有导航栏吗?我问是因为我仍在尝试寻找答案,是否应该将视图停止在导航栏底部或一直延伸到 VC 的顶部 非常抱歉。我再次经历了这个项目,在玩了一段时间之后,我发现我做了这些:(将更新答案)。 我之前提到的一个是让子视图动态化。真的很抱歉

以上是关于添加到 ScrollView 的 UIView 不适合全屏,顶部有导航栏的主要内容,如果未能解决你的问题,请参考以下文章

如何在特定位置将视图添加到 ScrollView?

除非我添加另一个 UIView,否则 ScrollView 中的 TableView 为空?

iOS 用xib给scrollView添加约束

在 ScrollView 中动态填充 UIView

将滚动视图添加到 UIView

Q:当我给一个UIView添加UIScrollView,但是scrollView不能滚动