【问题标题】:Flexible Vertical Spacing in UIScrollViewUIScrollView 中的灵活垂直间距
【发布时间】:2021-05-22 01:25:07
【问题描述】:

我有一个充满屏幕的滚动视图,里面有两个堆栈视图。顶部堆栈视图和底部堆栈视图。它们分别固定在滚动视图的顶部和底部,我在它们之间有一个可以调整的垂直间距约束,因此它> = 10(使用此处找到的解决方案-Fill Vertical Space of UIScrollView)。这里的想法是底部的stackview有一些按钮,并且总是显示在底部。

所以这一切都有效,根据我在下面展示的模型,我可以让状态 1、2 和 3 工作(状态 2 和 3 允许垂直滚动)。我遇到的问题是试图让状态 4 工作 - 这实际上与状态 1 相同,但键盘可见。当键盘可见时,我正在通过 keyboardFrame 的高度调整滚动视图的 contentInsets,一切正常。但是因为底部堆栈被固定在滚动视图的底部,显然滚动视图的 contentSize 不会改变,顶部和底部堆栈视图之间的垂直间距也不会调整。

我一直在尝试以不同的方式约束视图,但无法将我的头脑围绕在一个简单的解决方案上。有什么建议吗?

【问题讨论】:

  • 为了实现您的目标(如果我理解正确的话),您可能希望根据keyboardFrame 更改滚动视图的底部约束,而不是更改contentInsets

标签: ios swift autolayout scrollview


【解决方案1】:

您应该尝试在视图中放置一个滚动视图,在此引脚滚动视图之后以 0 边距查看。然后在 view.bottom 出现时将其固定到键盘高度。

【讨论】: