如何在swift IOS中创建具有多个堆栈视图的可滚动堆栈视图

时间:2016-09-26 13:37:55

标签: ios swift uiscrollview uistackview

我正在尝试创建一个可滚动的堆栈视图。 例如它的层次结构就像这样

-ScrollView
--StackView 
---StackView1
---StackView2
---StackView3
.....
---StackView12

enter image description here

StackView1,StackView2,....,StackView12 将具有动态高度和与OuterMost Scroll View相同的宽度。

OuterMost StackView也具有与OuterMost Scroll View相同的宽度。

我已将OuterMost StackView的属性设置为:

Alignment: Fill
Distribution: FillEqually
Spacing: 15

所有子StackViews(StackView1,StackView2,....,StackView12)表现良好。

我还在我的快速代码中添加了这个

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    OutMostScrollView.contentSize = CGSize(width: OutMostStackView.frame.width, height: OutMostStackView.frame.height)
}

但是我无法在OuterMost StackView中滚动。请任何人指导我实现这一目标的真正方法。 非常感谢你。

2 个答案:

答案 0 :(得分:0)

我刚刚在 OutMostScrollView 的高度参数中添加了250的高度,问题解决了。现在它滚动到最后。

OutMostScrollView.contentSize.height = OutMostStackView.frame.height+250

我从中得到的是我认为视图控制器的视图可能会消除OutMostStackView.frame.height以外的隐藏高度。

答案 1 :(得分:0)

Swift 4.2

我已经在堆栈视图中滚动了一个例子。

它简单而完整,不需要故事板(以编程方式)。

您可以在下面的要点中看到它:

Scroll stackView in Swift