滚动浏览UIStackView无法正常工作

时间:2017-10-06 11:25:20

标签: ios iphone swift uiscrollview uistackview

我试图在我的应用程序中实现可滚动的stackview,但我无法让它工作。

screenshot of the screen

当我点击文本字段时,会显示一个uipicker。根据选定的行(1到15),将UIButton添加到stackview。

for index in 1...selectedRow+1  {

    let button = UIButton()
    button.setTitle("\(index)", for: .normal)
    directionsStackView.addArrangedSubview(button)

}

这看起来很不错,除非数字是> 7

screenshot of that

所以我决定实现UIScrollView来滚动stackview

StackView的对齐设置为Fill and Distribution to Equal Spacing。

约束:

ScrollView具有:高度等于35,尾随并导致边距

StackView具有:尾随,前导,顶部,底部到超级视图,与superview相等的高度,以及将中心X与superview对齐(superview是scrollview)

我想要完成的事情是 - 数字之间的间距应该总是相等,当数字太多(7+)时,不要将数字之间的间距修改为更少,只需水平滚动它们。

我认为增加stackview的宽度会起作用,但问题是我无法滚动它们。

屏幕截图:htt ps://imgur.com/a/roi38(对不起因为声誉而无法发布3+链接的空间)

任何人都可以帮我吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

StackView默认情况下不可滚动,所以,是的,您需要ScrollView

您可能忘记设置ScrollViewexample on how you could do that

的contentSize

但是,对您的问题更好的解决方案可能是使用CollectionView

答案 1 :(得分:-1)

选择所有按钮并按以下方式将其嵌入scrollView而不是stackView

enter image description here