【发布时间】:2019-10-11 22:03:59
【问题描述】:
我希望 有所帮助,但我正试图围绕一个概念展开思考。我有一个 UIScrollView,添加到我的 ViewController 中的 self.view,其顶部、前导、尾随和底部边缘固定到 self.view 的边缘。这是viewA。
我有第二个 UIView,viewB,有几个子视图。这些子视图中的每一个都使用 AutoLayout 添加到 viewB,为简洁起见,每个子视图都有一个高度约束设置为一个值。
我想将viewB 添加到viewA,使viewA 能够垂直滚动。由于viewB 无疑比viewA 高,它应该滚动。
我像这样添加viewB;
viewB.topAnchor.constraint(equalTo: viewA.topAnchor).isActive = true
viewB.leadingAnchor.constraint(equalTo: viewA.leadingAnchor).isActive = true
viewB.trailingAnchor.cosntraint(equalTo: viewA.trailingAnchor).isActive = true
这就是我卡住的地方。如果我设置了底部锚点 (viewB.bottomAnchor.constraint(equalTo: viewA.bottomAnchor).isActive = true),我的 UIScrollView 不会滚动,viewB 会明显被截断。
如果我为viewB(使用viewB.heightAnchor.constraint(equalToConstant: 2000.0).isActive = true)设置一个随机高度,UIScrollView 会滚动,尽管这个常数太高了。
我很困惑如何为viewB 获得合适的高度。由于viewB 确实有一个实际高度(带有硬编码的子视图),我认为 AutoLayout 没有理由不能计算viewB 的高度,即使没有设置底部锚点,但无法弄清楚正确的代码。
【问题讨论】:
标签: ios swift uiscrollview autolayout