带有 UIStackView 的 UIScrollView,可调整大小以填充屏幕高度

UIScrollView with UIStackView which resizes to fullfill the screen height

提问人:Gargo 提问时间:8/10/2023 最后编辑:Gargo 更新时间:8/11/2023 访问量:20

问:

没有代码,因为一切都放在 xib 中。

结构:包含 (UIScrollView Scrollable Content Size Ambiguity),其中包含包含子视图列表。所有子视图都具有固定高度,除了一个只有“最小高度”的子视图,如果需要,我需要拉伸此视图以填充所有可用高度。如果非常大,则应滚动。UIScrollViewUIViewUIStackViewUIStackViewUIStackViewUIStackViewUIScrollViewUIStackView

尝试了很多组合,但唯一应该拉伸或折叠的视图具有不可预测的高度。在更好的情况下,它按预期工作,但内容完全忽略安全区域(变得比预期的大)。UIScrollView

有人遇到过这个问题吗?

编辑

它是 xib 内部的视图控制器,以模式加载/呈现。链接到 xib

iOS UIscrollView UISackView SafeArea

评论

0赞 DonMag 8/10/2023
如果您确定您的更改已经“解决”了您的问题,那就太好了。但是,如果您正在寻找更好的解决方案,我们需要更多的信息。您是视图控制器吗?还是风景?你是如何加载/显示它的?向我们展示您的布局的屏幕截图,确保展开所有约束,以便我们可以看到您正在执行的操作。xib
0赞 Gargo 8/11/2023
@DonMag编辑了问题,甚至添加了一个原始的 xib(问题没有解决)

答:

0赞 Gargo 8/10/2023 #1

发现了一个奇怪的解决方案:

  • 禁用根视图的安全区域
  • 为滚动视图启用安全区域(直接插入根视图)
  • 这里这样的设置约束(前导、尾随、顶部、底部、等宽、低优先级的等高),但有一个区别 - 滚动视图的根视图高度不应等于 Superview 高度,而应等于安全区域高度

但也许有人可以提出更好的解决方案