【问题标题】:ScrollView won't let me scroll through a StackView swiftScrollView 不会让我快速滚动 StackView
【发布时间】:2021-07-20 11:44:54
【问题描述】:

移动开发者您好!

我正在创建一个应用程序,但无法使其可滚动。我已经插入了一个 ScrollView 和一个带有 3 个视图的垂直 StackView。

我是 swift 的新手,我不确定要为您提供什么来帮助我,这里有几个屏幕截图可能会有所帮助。

Running app

View Structure

Some constraints

ScrollView details

欢迎任何其他关于结构或良好实践的 cmets。

更新:该应用程序现在正在滚动,但由于某种原因,我无法一直向下滚动。即使我插入的内容是动态的,它似乎也将设备的全部高度作为滚动的高度。

我在以下链接中有一个视频,因此您可以进行视觉参考: https://drive.google.com/file/d/1UmE9NEVTxbK_rFPJarhfohPFb8XD8HcA/view?usp=sharing

【问题讨论】:

  • scrollView.contentSize 确定UIScrollView 的可滚动区域。如果它没有在任何地方设置,它将永远不会滚动。您可以在代码中设置它(也许在 viewDidLoad 中)。在故事板中设置它可能有点棘手,因为它取决于您的视图层次结构和子视图的约束。您可以尝试将主堆栈视图的前导、尾随、顶部和底部设置为初学者的内容布局指南
  • 你的问题和你的布局有点混乱......你想滚动什么?您的滚动视图有一个垂直堆栈视图(在其排列的子视图上具有令人困惑的约束)...并且您提到了一个 水平堆栈视图 ...您要垂直滚动吗什么时候内容比滚动视图高?
  • @DonMag 抱歉,我的意思是垂直滚动视图。

标签: ios swift mobile view uiscrollview


【解决方案1】:

我认为问题在于您没有在滚动视图中添加视图,并且在滚动视图的大小检查器部分中取消选中“内容布局指南”。该视图是您的主要内容视图。所以你的层次结构就像 ScrollView -> View -> 然后是你的主 Stack View。不要忘记为您的主要内容视图提供任何固定高度,这样它才能完美运行。您还可以动态处理主要内容视图的高度约束。 您还可以从以下答案中获取快速指南,该指南非常有效。 https://stackoverflow.com/a/59047168/12969732

我希望它会有所帮助。如果您有任何疑问,请告诉我。

【讨论】:

  • 非常感谢!现在该应用程序是可滚动的。但是,由于某种原因,它没有适应内容的高度。是滚动和反弹,但只停留在起始位置以下几个点。我打印了滚动视图和堆栈视图的高度,无论描述的长度如何,滚动视图的高度始终为 798pt,堆栈视图的高度始终为 802pt。我做错了一些事情,不会根据标签的内容动态调整“描述”视图的大小。我什至尝试为滚动视图强制使用静态宽度,但没有奏效
  • 欢迎您的伙伴!这可能是您的约束的问题。解决您的问题的一种方法是为顶部/底部/尾随/导致 superView(1) 和与 superView(1) 相等宽度的滚动视图提供约束。然后你应该为你的主要内容视图(你在滚动视图中添加的)定义高度以及堆栈视图的高度,然后你应该根据你的“描述”多长时间动态处理主要内容视图和堆栈视图的高度约束。
猜你喜欢
  • 2016-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多