问题标签 [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 回答
104 浏览

ios - 如何使用 UICollectionViewCompositionalLayout 的部分提供程序跳过部分?

我正在使用UICollectionViewCompositionalLayout在我的应用程序中构建一个新屏幕。我每个部分都有不同的布局,所以我使用的是部分提供程序初始化程序

我希望能够根据传递给提供者的布局环境隐藏和显示一些部分。不知何故,我的印象是我可以通过简单地返回一个nil部分来做到这一点——返回类型是可以为空的——但是当我返回一个 nil 部分时,我得到了一个异常:

*** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无效的部分定义。当要为一个部分呈现内容时,请指定一个有效的部分定义。这是一个客户错误。

以 NSException CoreSimulator 757.3 类型的未捕获异常终止-设备:iPhone 12 Pro (C26C7431-8081-43CB-8E77-F79C8B8B3924)-运行时:iOS 14.4 (18D46)-设备类型:iPhone 12 Pro

在这里跳过一个部分的最佳方法是什么?如果返回 null 会引发异常,为什么节提供程序的返回类型可以为 null?

0 投票
0 回答
197 浏览

swift - UICollectionViewDiffableDataSource 自定义子类初始化

所以我正在制作 UICollectionViewDiffableDataSource 的自定义子类。

我的代码如下所示:

但当然,我在 Xcode调用“self.init”或分配给“self”错误之前使用了“self”。

如何仅使用 UICollectionView 参数初始化 MyDiffableDataSource 而不会出现此错误?

我知道我可以将函数firstCell()secondCell()静态的,或者我可以将这两个函数的所有内容直接放在 init 中。但是,如果我稍后添加更多并且静态会阻止我访问其他非静态属性,那将不会很好。

还有其他我可以使用的解决方案吗?

谢谢!

0 投票
0 回答
32 浏览

swift - 如何在用户操作时动态更新 UICollectionViewCompositionalLayout(即滑动 UISlider)

我正在开发一个想要实现此功能的项目:当用户滑动 aUISlider时,collectionView 会动态添加/减少列数,例如在 Google 文档中添加/删除列。

我试图寻找解决方案,有些人建议使用invalidateLayout(). 我将此方法添加到操作中,UISlider但 collectionView 没有更新布局。

这是我创建布局的代码:

numberOfColumns根据用户的操作进行更新。我希望它也能更新布局。我正在使用斯威夫特。

任何帮助将不胜感激!

在 Google 文档中添加/删除列

0 投票
0 回答
24 浏览

swift - 我们可以使用组合布局为部分中的组设置不同的滚动行为吗

我正在尝试使用 compositionalLayout 在 collectionView 中创建一个部分。我正在创建一个带有嵌套组的部分。其中一组需要水平滚动行为。但是该部分本身具有连续的 OrthogonalScrollBehavior。

0 投票
1 回答
145 浏览

swift - UICollectionViewCompositionalLayout 中的嵌套组

我正在努力使用 UICollectionViewCompositionalLayout 获得我想要的布局。下图是我正在尝试做的(以及我对分数宽度/高度的计算,根据我得到的结果,我只能假设它是不正确的。

具有领先项目的嵌套组 - 设计

我为尝试生成上述代码而编写的代码如下:

这会产生不希望的结果,如下图所示:

具有领先项目的嵌套组 - 预览

谁能解释我做错了什么并帮助我弄清楚如何实现我想要做的事情?

谢谢你。:)

0 投票
1 回答
687 浏览

swift - 组合布局无法正确调整“_UICollectionViewOrthogonalScrollerEmbeddedScrollView”的高度,导致按钮无法接收事件

我在使用组合布局的集合视图时遇到问题!卡片部分应该是自动调整高度的大小,它应该水平滚动,而整个集合视图垂直作为这个测试项目!我遇到的问题是我为项目和组设置了估计高度,但是这个对象“_UICollectionViewOrthogonalScrollerEmbeddedScrollView”没有相应地调整大小,因此“_UICollectionViewOrthogonalScrollerEmbeddedScrollView”边界之外的单元格部分没有收到事件所以,如果您按下项目中最长卡片上的按钮或尝试滚动或触摸“_UICollectionViewOrthogonalScrollerEmbeddedScrollView”之外的部分,则单元格不会收到任何事件。检查随附的屏幕截图...有人知道如何解决此问题吗???

项目链接:https ://drive.google.com/file/d/1tksL0qZ1egxy7M4UD8eLMeY61H7U1ou1/view?usp=sharing

在此处输入图像描述

这是我的组合布局代码

}

这是我的手机配置器

}

0 投票
1 回答
94 浏览

ios - UICollectionViewCompositionalLayout 不会滚动到不完整的组

我有简单的实现UICollectionViewCompositionalLayout。有两个部分,每个部分都有水平滚动的单行,部分中的每个项目都有整个容器的 1/4 宽度(现在是全屏)。

我想要分页滚动,但是当数据源在该部分提供4n+1 个元素时,我无法滚动访问最后一项。

如何使用简单的最后一项的纯动画来修复它UICollectionViewFlowLayout

带有错误示例的视频

0 投票
0 回答
266 浏览

swift5 - 组合布局集合视图中的页面控件

我正在尝试在组合布局集合视图中使用 pageControl 选项。我已经提到了一些与同一主题相关的先前问题,例如Trying to hook up Compositional Layout CollectionView with PageControl。visibleItemsInvalidationHandler 没有调用。它对我不起作用。如果有办法实现这一点,请帮助我。非常感谢您的支持。

0 投票
0 回答
66 浏览

ios - iOS:根据内容的高度更改collectionView标头的高度

我有一个使用组合布局的 collectionView。集合视图有一个标题,标题内部是一个标签,根据从 API 加载的数据,它可以有不同的高度。

我正在以编程方式做所有事情。

我已经使用以下布局设置了 collectionView

如何将标题的高度设置为取决于其内容的高度?

我尝试了 collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize 但这似乎不适用于组合布局。

0 投票
0 回答
33 浏览

ios - 在 iOS 组合布局部分中删除一个组单元格的 interGroupSpacing

我得到了一个带有 interGroupSpacing 20 的部分,但是每当有补充视图时,我希望这个 interGroupSpacing 为 80。

使用组合布局的集合视图甚至可能吗?