UICollectionView 动态宽度基于里面的项目数吗?

Posted

技术标签:

【中文标题】UICollectionView 动态宽度基于里面的项目数吗?【英文标题】:UICollectionView dynamic width based on number of items inside it? 【发布时间】:2017-08-17 07:02:17 【问题描述】:

我目前想在屏幕上创建一个浮动 UICollectionView ,只要其中的项目数量发生变化,它就可以改变宽度。 例如: 我更喜欢使用最大宽度 = 280px 如果numberOfItems = 2,我的 UICollectionView 宽度将适合其中的项目,并且它会增加宽度直到numberOfItems = 4,如果numberOfItems > 4,它将启用水平滚动。 有人以前做过吗?请帮帮我。 提前致谢。 编辑:我更新了关于集合视图的图像,目前它只有 2 个项目,而宽度 = 280。

【问题讨论】:

能否提供演示图像的屏幕截图。 @PhaniRaghu 我更新了图像,这是屏幕上的浮动集合视图,所以我没有使用自动布局。 我已经回答了身高问题。同样的事情也适用于宽度。 我不使用自动布局,您的解决方案可以适用于我的情况吗? 这是自动布局的简单解决方案。没有自动布局它不起作用。但是,如果您以编程方式执行此操作,那么您也可以遵循相同的条件。但是你需要改变框架而不是改变宽度。 【参考方案1】:

我认为这是您正在寻找的东西。看看我的test project 看看它是如何工作的。 您只需更改宽度限制。

【讨论】:

在这种情况下,我以编程方式创建了这个collectionview,并且不使用自动布局,所以我可以连接一个出口来限制宽度。你有其他解决方案吗?但仍然感谢您的示例。 没问题,那么你应该计算 CollectionView 框架并在 UIView 动画块中对其进行动画处理。

以上是关于UICollectionView 动态宽度基于里面的项目数吗?的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionView 动态高度和宽度

uicollectionview 动态高度但固定宽度

尝试通过使用 UICollectionViewCompositionalLayout 实现固定高度、动态宽度(包装内容)水平 UICollectionView 的单元格

基于 iphone 5 与 iphone 6 的 UICollectionView 单元格宽度

如何让 Storyboard 支持 UICollectionView 中动态大小的单元格?

UICollectionView 双向滚动