Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 调整UIStackView中的视图大小,以在运行时填充剩余的屏幕大小_Swift_Uiscrollview_Autolayout_Uistackview - Fatal编程技术网

Swift 调整UIStackView中的视图大小,以在运行时填充剩余的屏幕大小

Swift 调整UIStackView中的视图大小,以在运行时填充剩余的屏幕大小,swift,uiscrollview,autolayout,uistackview,Swift,Uiscrollview,Autolayout,Uistackview,我的故事板上有以下设置: UIScrollView |- UIStackView |- View1 |- View2 |- View3 |- View4 View1-4中的某些内容是动态的,而View2有一个按钮。如果单击此按钮,ScrollView将滚动到偏移位置,以便View2位于可见屏幕的顶部。View2的固定已知高度为100。单击按钮并完成滚动后,我现在如何调整View3的大小,以便它填充屏幕的其余部分,在所有设备上工作?我是否需要计算屏幕高度并减去Vi

我的故事板上有以下设置:

UIScrollView
|- UIStackView
    |- View1
    |- View2
    |- View3
    |- View4

View1-4中的某些内容是动态的,而View2有一个按钮。如果单击此按钮,ScrollView将滚动到偏移位置,以便View2位于可见屏幕的顶部。View2的固定已知高度为100。单击按钮并完成滚动后,我现在如何调整View3的大小,以便它填充屏幕的其余部分,在所有设备上工作?我是否需要计算屏幕高度并减去View2的高度?或者,自动布局是否有任何倾斜方式?

您可以为View3的高度创建一个约束,该约束等于根视图高度,常数为-100。然后,您只需在该约束上切换isActive,View3就会自动调整其大小。

我可以在IB中设置该约束值吗?很可能不是因为屏幕的高度对吧?我是否需要为约束创建一个出口并在viewDidLoad中设置值?如果UIViewController覆盖整个屏幕,则可以在IB中设置它,方法是使其与UIViewController的视图相等。如果更合适的话,还可以使其等于UIScrollView的高度。这取决于您的视图层次结构。您需要一个IBOutlet或normal属性来切换isActive。