【发布时间】:2015-07-11 16:02:33
【问题描述】:
我正在尝试允许滚动视图根据此页面上子视图的大小调整大小。图片中对象的所有其他约束都可以正常工作。
当我向我的子视图添加约束以拥抱屏幕的左侧、右侧和底部(并且子视图的顶部拥抱分段控件的底部)然后更新帧时,它会使子视图 0。
我无法为子视图添加高度约束,因为子视图的大小会根据其中的内容量动态变化,然后会改变滚动视图的大小。
如何在不添加高度限制的情况下完成此操作?
【问题讨论】:
我正在尝试允许滚动视图根据此页面上子视图的大小调整大小。图片中对象的所有其他约束都可以正常工作。
当我向我的子视图添加约束以拥抱屏幕的左侧、右侧和底部(并且子视图的顶部拥抱分段控件的底部)然后更新帧时,它会使子视图 0。
我无法为子视图添加高度约束,因为子视图的大小会根据其中的内容量动态变化,然后会改变滚动视图的大小。
如何在不添加高度限制的情况下完成此操作?
【问题讨论】:
您的视图层次结构应如下所示:
创建 UIScrollView 的单个子视图,我们将在其中放置所有 我们的内容
内容视图必须是明确的大小(或占位符大小) 界面生成器并在运行时设置)。换句话说,您的内容 视图不能依赖滚动视图来获取其大小。它可以, 但是,取决于滚动视图之外的视图来获取其大小。
来自 Apple 技术说明 TN2154
在所有视图上将 translatesAutoresizingMaskIntoConstraints 设置为 NO 参与。
使用外部约束定位和调整滚动视图的大小 到滚动视图。
使用约束来布置子视图 滚动视图,确保约束绑定到所有四个边缘 滚动视图,不要依赖滚动视图来获取它们的大小。
【讨论】:
尝试将Equl Heights 和Equal Width 约束赋予您的子视图。
【讨论】: