如何uicollectionview高度灵活

时间:2017-11-29 08:52:41

标签: ios swift uicollectionview

使用UICollectionView并希望一次显示少量内容而无需滚动

例如,如果内容的数量是一个或多个,则它可以是五个。但是,如果您将UICollectionView高度设置为200,以防有1个内容时有5个内容,则高度为200。根据内容的数量,您希望高度如何灵活?

如果内容为5,则uicollectionView的高度为200,如果为1,则高度为40

3 个答案:

答案 0 :(得分:0)

您可以停用滚动。

self.collectionView.scrollEnabled = NO;

答案 1 :(得分:0)

您可以执行以下操作来实现此目的:

高度限制的出口带到您的集合视图,然后根据需要更改高度,例如

let height: CGFloat = (number of rows or content to show) * (heigh of row) //Calculation can differ according to needs
collectionViewHeightConstraint.constant = height
self.view.layoutIfNeeded()

我希望这可以帮助你:)

答案 2 :(得分:0)

可以实现两种方式 - 需要为故事板中的collectionView提供零高度或高度约束

现在在View中会出现这两个简单的步骤

  1. 获取内容高度和设置框架高度

    HotDealsCollectionView.frame.size.height = HotDealsCollectionView.contentSize.height

  2. 根据细胞数量获得高度

    HotDealsCollectionView.frame.size.height =(Array.count *静态高度,如果你提供的话)

  3. 可以在两个选项的末尾调用LayoutsIfNeeded()

    首选第二个如果你连续显示一个我的意思是Vertical CollectionView,而在第一个选项中,你将获得它实际上正在寻找的ContentSize高度

    注意:如果你的结果没有得到预期,就像采用这些选项之后不增加帧大小那么只需添加一些静态高度值,如

    HotDealsCollectionView.frame.size.height = HotDealsCollectionView.contentSize.height + 50
    

    希望它有助于