在 scrollView 内的 contentView 上设置约束

Posted

技术标签:

【中文标题】在 scrollView 内的 contentView 上设置约束【英文标题】:setting constraints on contentView inside scrollView 【发布时间】:2015-09-18 06:25:22 【问题描述】:

对于我的项目,我需要制作一个距顶部 64 pt 高度的自定义菜单。因此,默认导航栏可见性设置为 false。在此菜单下,我有一个 ScrollView,其中包含一个 ContentView,我将在其中放置所有 UI 项。 ContentView 的原点位于 ScrollView 内部,是 (0,0)。问题是,当我从 SrcollView 顶部离开 20 pt 空间后运行项目时,正在显示 ContentView。

这里是示例项目链接:https://drive.google.com/file/d/0BzhZns5G0PXhN2lNSjF6XzNmTTg/view?usp=sharing

【问题讨论】:

【参考方案1】:

这是滚动视图和表格视图中常见的问题。添加这行代码来解决它:

self.automaticallyAdjustsScrollViewInsets = false;

【讨论】:

谢谢它解决了这个问题。但是你能解释一下,如果我们不将它设置为 false 为什么它总是出现在 20 pt 之后。这是状态栏的大小【参考方案2】:

从您的代码中删除它:

var gg:CGSize = CGSize(width: self.contentView.frame.width, height: self.contentView.frame.height)
self.scrollView.contentSize = gg

并添加这一行而不是那个代码:

scrollView.contentInset = UIEdgeInsets(top: -20, left: 0, bottom: 0, right: 0)

【讨论】:

这解决了问题,但是当我们知道它从0开始时设置前-20是否正确【参考方案3】:

我已为您进行了更改,请使用它。 https://drive.google.com/file/d/0B97G6aGaHcoYNUVtMmN1b1dUR2M/view?usp=sharing

【讨论】:

以上是关于在 scrollView 内的 contentView 上设置约束的主要内容,如果未能解决你的问题,请参考以下文章

TouchableOpacity 内的 ScrollView

android: ScrollView 内的 RecyclerView

ViewPager 中片段内的 ScrollView 内的 Horizo​​ntalListView

基维。 GridLayout 在 ScrollView 内的位置

在 CollectionViewCell 内的 ScrollView 内缩放 UIImage [重复]

SwiftUI中ScrollView底部对齐内的VStack