问题标签 [uicollectionviewcompositionallayout]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
681 浏览

ios - 如何使用这样的图像/图标/视图偏移组合布局

我正在尝试实现看起来像这样的“标签云”效果 -

在此处输入图像描述

每个Tag Item X都是一个单元格,#可以是图像、单元格或视图。它只需要这些是哈希标签。

我目前对标签云的尝试如下所示 -

在此处输入图像描述

我无法弄清楚如何偏移部分项目并将视图或任何类型插入该空间。

我确实尝试了破解或排序,因为每个单元格都包含图标和标签,然后我在第一个单元格之后隐藏每个单元格上的图标。但是,这不起作用,因为它Tag Item 3会包裹在图标下方,并且还存在一些重用问题。

请问我怎样才能实现这个用户界面?

我相信我可能需要渲染一个嵌套组,第一个单元格中带有图标和尾组中的 mu 标签?我无法完成这项工作。

0 投票
0 回答
125 浏览

ios - 组合布局标头内存泄漏

我似乎遇到了组合布局的内存泄漏,我的组大小导致我的标题和单元格的内存使用率极高。只是为了更详细地解释我正在尝试布局一个水平网格,其中项目具有基于屏幕宽度的 1:1 比例。

在我的情况下,我想要每行 5 个项目,它们是屏幕大小的 20%,每个项目之间有 1px 间距。并且应该估计标题的高度,以便它们根据内容自行调整大小。所以下面是我到目前为止的一个片段。

如果我将上面的以下代码更改为下面的代码,其中我为节标题定义了一个绝对值,那么一切都会正常呈现并且没有问题。

任何想法为什么会这样?

0 投票
1 回答
235 浏览

ios13 - ios 14 中的 UICollectionViewCompositionalLayout 中的弹性标题?

如何覆盖 UICollectionViewCompositionalLayout 中的 layoutAttributesForElements ?

0 投票
1 回答
166 浏览

ios - 使用 UICollectionViewCompositionalLayout 时如何根据屏幕宽度更改项目大小

在我使用的集合视图中UICollectionViewCompositionalLayout,当视图宽度较小时,我希望项目大小为 85x85,否则为 100x100。但是这是在创建布局时指定的,那么当屏幕宽度发生变化时如何更改布局大小,例如旋转 iPhone 或更改 iPad 上的拆分视图配置?

0 投票
1 回答
156 浏览

ios - ios Swift UICollectionViewCompositionalLayout 镜像 UI 切换 UI 布局方向

每当我使用以下代码在运行时切换语言时:

任何使用组合布局的集合视图都会被镜像,而不是布局翻转而是内容被镜像。

0 投票
1 回答
144 浏览

ios - Swift - CompositionalLayout - 计算高度

我正在尝试使用创建电影海报网格CompositionalLayout。但我正在为细胞高度而苦苦挣扎。问题是,当我设置时,我需要每行渲染 3 张海报。它会自动计算宽度,因此基本上不同设备上的宽度会有所不同。

有没有办法保持纵横比或访问单元格宽度来计算高度.absolute()

我也尝试过使用.estimated(100),但它的行为与.absolute(100)

这是我现在的代码,单元格高度是硬编码的。

0 投票
0 回答
673 浏览

ios - 具有估计高度的 CollectionView 组合布局仅显示 _UICollectionViewOrthogonalScrollerEmbeddedScrollView

我有一个复杂的布局,大部分时间它加载得很好。重新加载几次后,虽然一切都消失了(这并不总是发生),我只看到一个空的 collectionView。如果我检查它,我可以看到只有空空间和多个 _UICollectionViewOrthogonalScrollerEmbeddedScrollView (可以看到下面的布局检查器)。

控制台中的唯一警告与项目插图有关,但我不确定它是否甚至相关,因为插图不适用于具有垂直滚动的组合 collectionView,但我认为它不会导致其他问题那。即使 collectionView 显示正常,警告仍然存在。

当问题发生时,collectionView 设置正确,甚至检查它,您可以看到节和行的数量设置正确。如果我在单元格被填充的位置放置一个断点,尽管它没有被调用。

在此处输入图像描述

在此处输入图像描述

部分布局示例:

数据设置代码示例:

0 投票
1 回答
2284 浏览

ios - 如何制作 UICollectionView 全局页眉和/或页脚?

我一直在尝试创建一个 UICollectionView 标头,该标头会粘贴在我的集合视图之上。我正在使用 UICollectionViewCompositionalLayout。

我尝试了多种方法:使用单元格,使用部分标题并尝试使用插入和偏移量来正确定位它相对于我的内容......甚至在集合视图的顶部添加一个视图来监听集合视图的滚动视图的 contentOffset 以将自身定位在正确的位置。但这些方法都不是令人满意的。他们都觉得自己像个黑客。

我一直在做一些研究,显然你必须对 UICollectionViewLayout 进行子类化,这非常乏味,而且对于只有一个标题似乎有点矫枉过正,但它对整个集合视图来说是全局的。

0 投票
2 回答
479 浏览

uicollectionview - UICollectionViewCompositionalLayout 更新单元格高度

我有以下设置:

  • UICollectionView 具有自调整大小的单元格,其高度由其内容定义

  • UICollectionViewCompositionalLayout 定义像这样的项目的尺寸

这工作正常,直到我想更新其中一个单元格的高度。我收到以下警告:

单元格的原始高度确实125由占位符大小定义,但是当更新通过网络时,我正在对单元格创建高度约束,contentView如下所示:

哪里size.height是新高度。所以,问题是,我在这里错过了什么?我假设NSAutoresizingMaskLayoutConstraint是由自动布局从单元格的原始高度创建的,但是为什么当我将高度约束添加到单元格时它没有被重置/删除contentView

0 投票
0 回答
275 浏览

swift - 垂直滚动(或 visibleItemsInvalidationHandler)使用 groupPagingCentered 重置正交部分的内部偏移量

我用 groupPagingCentered 的正交部分做了 UICollectionViewCompositionalLayout 如下:

其他部分垂直滚动。垂直滚动时,正交偏移重置为零。如果我评论 visibleItemsInvalidationHandler,它不会被重置。

为什么会这样?有人有这个问题吗?