【发布时间】:2019-11-13 11:32:54
【问题描述】:
也许有人可以帮助我解决我正在使用 InterfaceBuilder 和 Auto Layout 解决的问题。
我有一个 containerView(黄色),其中有一个视图控制器,该控制器的视图中填充了 StackView(蓝色)。这个 StackView 用 = 0 固定在顶部、左边、右边,用 >= 0 固定到底部。
然后在 StackView 内需要有一个 ScrollView(橙色)(垂直滚动),我在运行时添加子视图(1 到 20 个标签之间)。此 ScrollView 应占用视图的所有剩余空间,并且最小高度为 100 像素。
当我运行应用程序时,ScrollView 是不可滚动的。并且堆栈视图的第一部分的内容也被推出视图(在顶部)。
我将 Scrollview 设置为 Content Compression Resistance Priority 为 1000。没有变化。
我迷路了,我该如何解决这个问题,非常感谢任何帮助/指导。
这里有一些布局,应该是什么样子:
【问题讨论】:
-
黄色和蓝色视图之间的间距如何?它是如何确定的?
-
我有一个带有 NavigationBar 的 View Controller,这个 Vc 里面是黄色的 ViewContainer。 10px 到 NavBar 和边。里面是在 0px 处固定到超级视图的 StackView(蓝色)。所以黄色空间其实有点误导,我用它来显示层次结构。
-
将 ScrollView 与 Stack 视图分开会更好吗?顶部的堆栈视图,底部的滚动视图,其中的堆栈视图?这可能是一种解决方法,但它会对我做错的事情很感兴趣。我觉得我对 AutoLayout 太笨了。
-
显然您想从堆栈视图的其余内容中水平“插入”滚动视图。所以最好不要放到stack view中。
-
好的,谢谢,我认为这应该是可能的。所以基本上如果我想要标签 |滚动视图 |标签,然后我需要 StackView |滚动视图 |堆栈视图?感谢您的帮助,非常感谢。
标签: ios swift autolayout interface-builder xcode11