如何在滚动视图中为垂直堆栈视图设置自动布局约束

时间:2018-12-12 08:56:37

标签: swift uiscrollview autolayout uistackview

我有以下设置,无法正确使用自动布局:

Scroll View, which should take the whole screen
 |_ Stack View, which should take the whole size of the Scroll View
     |_ View 1 with a predefined height of 200
     |_ View 2 with a flexible height defined by content, but minimum 300
     |_ View 3 with a predefined  height of 500

我还尝试了以下方法:

  1. 滚动视图
    • 将顶部,底部,前导和尾随对齐设置为超级视图
  2. 堆栈视图
    • 将顶部,底部,前导和尾随对齐方式设置为超级视图(滚动视图)
    • 将超级视图(滚动视图)的宽度设置为相等
    • 将优先级设置为250的超级视图(滚动视图)的高度
  3. 堆栈视图中的3个视图
    • 为View1定义高度= 200,为View3定义高度= 500
    • 为View2定义高度> = 300

我得到:

  • IB中的一个错误:View2的不平等约束歧义
  • 如果我启动并滚动,则会在顶部和底部获得更多的间距(请参见模拟器屏幕快照中顶部和底部的红色区域)

请查看屏幕截图: Constraints for Scroll View Constraints for Stack View Predefined height constraint Flexible height constraint Additional space at the top Additional space at the bottom

1 个答案:

答案 0 :(得分:0)

enter image description here

将顶部,底部,前导和尾随对齐方式更改为 SafeArea

因为内容视图始终位于SafeArea中。