问题标签 [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 投票
0 回答
764 浏览

swift - UICollectionViewCompositionalLayout 标头未对齐

我创建了一个自定义布局,基于UICollectionViewCompositionalLayout该布局在面板或卡片中显示每个部分的项目......

没有标题的面板

...这里的蓝色区域是NSCollectionLayoutDecorationItem通过其decorationItems属性传递给该部分的。这个背景项目有它自己的内容插图,它从集合视图边界(灰色区域)插入,并且该部分有它自己的内容插图,可以在面板中插入它。紫色部分是 3 个全宽项目(单元格)。

这一切都按预期工作。

但是,当我尝试使用 为每个部分添加标题时boundarySupplementaryItems,标题(红色)似乎忽略了该部分的内容插入,但该部分确实调整了自身的大小,就好像它定位正确......

带标题的面板

...标题将自身固定在部分的顶部,但部分高度会增加标题 + 插图的高度。

这是我用来生成布局的代码...

谁能建议我如何让标题正确定位 - 就在该部分的第一项上方,并尊重已设置的内容插图?

0 投票
1 回答
427 浏览

swift - 使用情节提要将集合视图布局设置为组合布局

我如何能够将集合视图流布局从情节提要更改为组合布局。所以我有一个 TabBarController 类,其中包含我从情节提要中初始化的 3 个导航控制器,如下所示。

这就是我将控制器添加到标签栏控制器的方式。

如果我尝试使用注释行添加我的 SearchCollectionVC,我的应用程序将崩溃。它在 SearchCollectionVC 所需的 init 中执行 fatalError() 行。这就是我创建布局的方式。

现在我尝试在 SearchCollectionVC viewDidLoad() 中执行此操作。

这适用于注释行而没有 init。问题是当我旋转屏幕时会发生这种情况。

在此处输入图像描述

当我使用 SearchCollectionVC() 添加控制器和使用 init 时,不会发生这种情况。现在,我不知道为什么会这样。有人可以告诉我如何能够初始化故事板控制器并将布局更改为我创建的组合布局,而不会将集合视图切成两半。谢谢

0 投票
1 回答
775 浏览

ios - 集合视图组合布局 - 动态布局

在看到Collection View Layout Session 中精彩的 Advances之后,我想知道是否可以使用新Collection View Compositional Layouts框架中实现的功能来创建基于以前未知的单元格大小的布局。

我的问题:

想象一个有两个级别的水平图片库,照片可以是“垂直”或“水平”,应用程序在需要显示时获取它们,并且它们是随机提供的(“水平”或“垂直”)。所以我们必须用“随机模式”填充画廊(Pinterest 风格,这里是如何做到这一点UICollectionViewFlowLayout)。

说明问题的随机布局

我看不到填充单元格的“组”模式,因为布局有无限的可能性,垂直划分可以出现创建组,但也不能。

可以存档Collection View Compositional Layouts吗?


谢谢你。

0 投票
1 回答
762 浏览

ios - UICompositionalLayout 未按预期工作(垂直表格滚动 + 水平分页)

我一直在挖掘 iOS 13 中引入的“新”组合布局 api,希望找到一个解决方案来解决UITableViewUICollectionViewCell. 我过去曾使用过这种令人头疼的解决方案,以便同时提供水平页面滚动和垂直表格滚动。这是一种非常繁琐的做事方式,自从CompositionalLayout宣布以来,我一直渴望尝试重构它。

到目前为止,没有运气。我可以使水平滚动和垂直滚动工作,但无法超越每行以独立方式水平滚动的“App Store”行为。有没有人有运气实施类似的解决方案?

这是我的代码CollectionViewLayout

这会产生两个项目的垂直滚动和显示后续页面中剩余项目的水平滚动,但每页只有两个。我的目标是让“页面”除以一年中的天数,每个页面应该有 X 个垂直滚动的项目。

在此处输入图像描述

谢谢

0 投票
1 回答
81 浏览

swift - UICollectionView 在 UICollectionViewCompositionalLayout 上自动滚动

UICollectionViewCompositionalLayout与水平和垂直滚动一起使用时,

我如何UISCrollViewUICollectionView

setContentOffset通过计时器自动滚动给定部分 ( )

例如。所以只有一个部分会自动滚动,而不是整个 collectionView

0 投票
1 回答
949 浏览

ios - 水平 UICollectionViewCompositionalLayout 在项目单元格上显示部分标题

我正在尝试使用 UICollectionViewCompositionalLayout 来创建这个设计:

UICollectionViewCompositionalLayout 所需的布局

这里的目的是让集合视图水平滚动,当项目使用 NSCollectionLayoutSection 的orthogonalScrollingBehavior属性溢出时,它们也会垂直滚动。

这是我现在的布局:

结果是:

UICollectionViewCompositionalLayout 实际布局

关于我哪里出错的任何想法?

0 投票
0 回答
2467 浏览

swift - 带有 pinToVisibleBounds 的 UICollectionView 组合布局标头奇怪地被单元格遮挡

我正在使用 UICollectionView 组合布局并希望有一个贴在顶部的标题

这应该是可能的

但是,在滚动过程中,标题被奇怪地遮住了,看起来像一个错误......而且看起来只有在可见屏幕之外的单元格,当重新加载时,遮住了标题

迅速

您可以在此视频中看到它 https://www.dropbox.com/s/n5myzfceuiwzb39/stackoverflow-unsatable-header.mov?dl=0

这就是整个布局的构建方式

解决方法是什么?或者有什么其他方法可以有一个“浮动”标题?


注1:

看起来当标题附加到configuration.boundarySupplementaryItems它时,它的行为符合预期......通过这可能是当前情况的解决方案,它不能解决部分的整体问题......(您还必须将 zIndex 设置为非常高数字)

0 投票
1 回答
1022 浏览

swift - UICollectionViewCompositionalLayout 水平,使用估计和不水平拥抱时不计算内容的宽度

UICollectionViewCompositionalLayout在水平模式下使用widthDimension: .estimated(100),应该用它来计算内容大小

但是单元格/组的宽度根本不是由内容大小计算的 ,而是设置为估计值,因为它是一个绝对值

即使向标签添加宽度约束也不会影响单元格大小

这是预期的行为吗?如果是,那为什么?以及如何获得预期的结果?

在此处输入图像描述

在此处输入图像描述

0 投票
0 回答
340 浏览

swift - UICollectionViewCompositionalLayout 垂直中心组

如何在部分中垂直居中组?

在此处输入图像描述

我在组上尝试了灵活的间距,但看起来并不奏效

完整代码

0 投票
1 回答
2133 浏览

swift - 具有组合布局的集合视图不适用于标题视图

尝试UICollectionView使用compositionalLayout. 它适用于集合视图单元格,但是当我尝试添加标题时,它会因注册笔尖错误而崩溃:

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无法使类型视图出列:SectionHeaderElementKind 标识符为 headerView - 必须为标识符注册一个 nib 或类或连接情节提要中的原型单元格”

视图控制器的代码实现:

我创建的标题视图:

如果我在这里遗漏了什么,请帮忙。