当堆栈视图的大小小于滚动视图时,如何在 UIScrollView 内右对齐 UIStackView?

问题描述 投票:0回答:1

请看下面我的故事板图片以了解我的视图的布局。

左侧是一个水平的

UIStackView
,有 2 个按钮。这没关系。

上面堆栈视图的右侧是一个

UIScrollView
,里面有一个水平的
UIStackView

我基本上希望右侧的堆栈视图能够包含许多按钮。

如果右侧堆栈视图的大小超过滚动视图的宽度,那么它应该可以滚动以显示剩余的按钮。

到目前为止效果很好,我可以通过将右堆栈视图的边缘设置为父滚动视图的

contentLayoutGuide
并将右堆栈视图的高度设置为等于父滚动视图的
frameLayoutGuide
来实现此目的。

这允许我在按钮太多的情况下成功滚动。

我面临的问题是,如果只有几个按钮不足以滚动,那么我希望这些按钮右对齐。基本上,

UIScrollView
应将内容堆栈视图对齐到右侧。目前,所有按钮均靠左对齐。

我希望它看起来像这样:

ios uiscrollview autolayout uistackview
1个回答
0
投票

我在发布问题后找到了解决方案。这似乎是一个有用的解决方案,所以我将分享它而不是删除问题。

  1. 我在右侧

    UIStackView
    的开头添加了一个额外的视图。这基本上是一个没有约束的间隔视图,背景颜色设置为透明。重要的是不要将其设置为隐藏,而是使用透明背景颜色,因为
    UIStackView
    不会渲染隐藏视图,然后此解决方案将不起作用。话虽如此,对于这个 Stack Overflow 答案,我将此视图的背景颜色设置为紫色,以使事情更容易理解。

  2. 我在右侧

    width
    添加了一个新的
    UIStackView
    约束,并使其大于或等于
    frameLayoutGuide
    宽度。

它的外观如下:

© www.soinside.com 2019 - 2024. All rights reserved.