自动调整UICollectionView高度以调整其内容大小

我有一个UICollectionView,一个button,在集合视图中创build一个新的单元格。 而且我想让UICollectionView根据它的内容大小调整它的大小(当有一个或两个单元,那么UICollectionView很短,如果有很多单元UICollectionView足够大)。

我知道如何获得内容大小:

collectionView.collectionViewLayout.collectionViewContentSize

但我不知道在哪里使用这个值。 如果有人帮我弄清楚如何让UICollectionView自动调整它的高度,我将不胜感激。

UPD:我在GitHub上发布了一个描述问题的演示项目: https : //github.com/avokin/PostViewer

我不认为内容大小是你以后的。 我想你想调整收集视图所消耗的屏幕空间的数量,对吧? 这将需要调整框架。 内容大小包括屏幕外(滚动)区域以及屏幕视图。

我不知道任何会阻止你仅仅改变帧大小的事情:

 collectionView.frame = CGRectMake (x,y,w,h); [collectionView reloadData]; 

如果我正确地理解你。

为集合视图使用高度约束,并在需要时使用内容高度更新其值。 看到这个答案: https : //stackoverflow.com/a/20829728/3414722

步骤来更改UICollectionView框架:

  1. 将集合视图的超级视图的“translatesAutoresizingMaskIntoConstraints”属性设置为YES(如果您正在使用AUTOLAYOUT)

  2. 然后更新集合视图的框架为:

     collectionView.frame = CGRectMake (x,y,w,h); [collectionView reloadData];