无法在滚动视图中正确调整堆栈视图

Posted

技术标签:

【中文标题】无法在滚动视图中正确调整堆栈视图【英文标题】:Cannot get stackview to adjust correctly in scrollview 【发布时间】:2019-05-11 16:20:31 【问题描述】:

我有一个嵌入到滚动视图中的内容视图。在这个内容视图上,我有一个 ImageView 和一个带有多个标签的 stackview。当行太长时,其中两个标签应该换行。当底线换行时,我希望它激活滚动视图。目前,我有这样的约束设置:

Scrollview -> Parent view controller = 0,0,0,0
UIView -> Scrollview = 0,0,0,0
ImageView -> UIView = Top: 20, Bottom: 45, Leading/Trailing: 80
Stackview -> Imageview = Top: 45
Stackview -> UIView = Leading: 20, Bottom: 40, Trailing: 150

标签是默认的,框架包含文本。 (我会发布一张图片。)

下图仅显示了在标签上设置约束以尝试强制自动换行的尝试之一——它没有奏效。

这是我得到的:

在底线换行后,stackview 应该向下增长并启用滚动。我需要能够滚动,但我看到的其他事情是它只会滚动到最后一行并弹回视野之外。我一直无法弄清楚如何向该行添加足够的填充以防止它这样做,但我相信这是另一个问题。

我尝试在堆栈视图上设置宽度约束以强制标签换行。标签设置为0行,换行设置为自动换行。我还尝试为标签设置一个较小的尾随约束以强制它换行,但这也不起作用。

这一切都是在 Interface Builder 中完成的,所以没有代码。如果它可以解决我的问题,我可以转到所有代码。让我知道我还需要发布什么来帮助解决这个问题。谢谢!

【问题讨论】:

【参考方案1】:

1-你需要从scrollview的contentView拖拽到vc的主外视图并选择Equal-widths

2- 你需要为 imageView 设置一个高度限制

3- 设置stackview的分布为fill

【讨论】:

看来更改填充更正了这个问题。谢谢!现在滚动视图似乎没有工作......

以上是关于无法在滚动视图中正确调整堆栈视图的主要内容,如果未能解决你的问题,请参考以下文章

调整滚动视图框架的大小时,UIScrollView 子视图的大小调整不正确

具有嵌入式堆栈视图的滚动视图在编程上失败

将视图推送到当前根视图下方的堆栈中

根据子视图的内容大小调整滚动视图

uiscrollview无法滚动到底部

嵌入堆栈视图时,滚动视图内容未填充