Ios UIScrollView和自动布局指南

Ios UIScrollView和自动布局指南,ios,uiscrollview,autolayout,Ios,Uiscrollview,Autolayout,我正在努力使用UIScrollView和AutoLayout。我试着做我自己的事情。但是,Xcode报告的内容大小不明确。我将scrollview和前导、尾随、顶部、底部约束从超级视图设置为0 有一个UIView作为容器来保存我的所有子视图,包括两个UILabel元素和两个UICollectionView视图。我将容器视图设置为与视图控制器的视图等宽等高。然后我将UILabel和UICollectionView视图约束全部设置为0。然而,它的运行如下图所示 请帮助我或给我一些关于UIScroll

我正在努力使用UIScrollView和AutoLayout。我试着做我自己的事情。但是,Xcode报告的内容大小不明确。我将scrollview和前导、尾随、顶部、底部约束从超级视图设置为0

有一个UIView作为容器来保存我的所有子视图,包括两个UILabel元素和两个UICollectionView视图。我将容器视图设置为与视图控制器的视图等宽等高。然后我将UILabel和UICollectionView视图约束全部设置为0。然而,它的运行如下图所示

请帮助我或给我一些关于UIScrollView和AutoLayout的文档或指南


您的主要问题是scrollView的内容,即您的容器视图没有固定到scrollView

以下是我的建议:

1删除容器视图的宽度和高度约束

2将容器视图的左、上、右和下固定到滚动视图的左、上、右和下。通过这样做,无论容器视图有多大,都将定义scrollView的可滚动区域

3如果只希望内容垂直滚动,请将容器视图的宽度限制为滚动视图的宽度


4您需要指定容器视图的高度。您可以通过只给它一个固定的高度约束来实现这一点。确保它大于scrollView高度,否则将没有可滚动的内容。另一种方法是确保完全指定其内容视图的大小,并且容器视图中最顶部的视图固定到容器视图的顶部,容器视图中最底部的视图固定到底部,并且视图应垂直地相互固定。换句话说,您的容器视图中应该有足够的约束,以便自动布局能够计算容器视图的高度。

谢谢!我把所有的都去掉,重新开始。但是,集合视图Inside container视图的高度是由有多少个单元格计算出来的,因此在获得所有单元格数据之前,我无法知道。我如何处理这个问题,比如说,通过编程更改约束?您可以通过在代码中向约束添加一个IBOutlet,以编程方式更改约束。控制从文档大纲视图中的约束拖动到代码,并为其命名为collectionViewHeight。然后您可以这样更新它:collectionViewHeight.constant=300。我应该在哪里更新它?Layoutsubview或任何其他?当您知道collectionView的高度时更新约束,然后在collectionView上调用LayoutFneed。我阅读了Apple关于将约束设置为占位符的文档,我认为这是我的情况,因为我的集合视图的高度在创建单元格后会发生变化。我确实选择了集合视图的高度约束作为占位符,但是在运行时,整个集合视图不会出现。在这之前,我可以看到它。设置为占位符后,我还应该做什么?