问题标签 [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.
ios - UICollectionViewCompositionalLayout 以编程方式设置 section.orthogonalScrollingBehavior 页面?
我正在实施UICollectionViewCompositionalLayout
和使用
水平滚动一个部分。
这允许用户在一个部分中从一个页面水平滚动到另一个页面。
我用
获取用户滚动到的页面。
如何以编程方式滚动到本节中的页面?
ios - UICollectionView 单元格展开动画问题
我遇到了一个问题,我的 UICollectionView 使用 UICollectionViewCompositionalLayout + Diffable 数据源不允许我平滑地为垂直单元格展开动画。我有一列类似于 UITableView 的全角单元格,我正在尝试扩展单元格以在单元格选择时显示截断的文本。
这在没有动画的情况下可以正常工作,但是当我尝试对其进行动画处理时,如果扩展单元格下方的单元格将具有超出屏幕边界的最终位置,我无法让它看起来流畅,因为单元格将立即消失而不是被动画“推”下。这个问题可以在链接的 gif https://imgur.com/a/ulj0p6n中看到
如果扩展单元格下方的单元格的最终位置在屏幕边界内,则不会出现此问题,如下所示:https ://imgur.com/a/uJ2RRRn 。
我发现了一个似乎有类似问题的旧问题:UICollectionView animating cell size change cause undesired behavior
那里的答案很老,对我没有帮助,因为我没有使用 Flow Layout,也没有使用 Obj-C。
我看到许多应用程序(例如 Instagram,当图像标题具有“查看更多”时)使用 UICollectionView 实现了预期的结果而没有任何动画问题,所以我认为这一定是可能的。
ios - 是否可以使用组合布局创建具有动态宽度但固定高度的单元格
TLDR;根据部分,我需要调整单元格的大小:
- 固定宽度但动态高度(例如,全屏宽度和自动高度取决于内容)
- 动态宽度但固定高度(第一个单元格可以是 120pt 宽,第二个单元格可以是 155pt 宽,等等。)
我只是在寻找:“是的,你可以通过组合布局来实现这一点,这就是如何......”。或者“不,你不能用组合来实现这个,你必须使用流布局或其他一些自定义布局。”
几个额外的要求:
- 建议的解决方案不建议将collectionView(_:layout:sizeForItemAt:)与流布局一起使用,因为这是我们试图避免的事情。如果这是答案,那么您可能会简单地说 - “不,这无法通过组合布局实现”。
- 建议的解决方案应该让集合视图根据它们的内在内容大小来确定如何适当地放置单元格。这类似于使用 tableview 的动态自调整大小功能
UITableViewAutomaticDimension
背景资料:
- 很清楚如何使用组合布局来实现全宽但动态高度的单元格。看到这个交流。
- 此处和此处记录了具有自动内容大小的流布局的已知限制。那是写了一本O'Reilly 书籍的人。基本上他说没有真正的自动调整流布局,尽管苹果声称有。因此,我们试图通过组合布局来解决这个问题。
ios - 组合布局IOS 13组背景颜色
我试图找出是否有一种方法可以在使用组合布局时为组提供背景颜色。我试图找到一个我可以使用的直接 API,但没有找到任何东西。
ios - UICollectionViewCompositionalLayout 正交部分 willDisplayCell 分析
我正在使用集合视图组合布局,并且需要对正交滚动部分的“userViewedCell”事件进行准确分析。我一直在使用 collectionView(willDisplay:forItemAt) 来检测何时将显示单元格,但这似乎非常有问题。
为了演示这个问题,这里是集合视图组合布局的 Apple 示例项目:https ://developer.apple.com/documentation/uikit/views_and_controls/collection_views/using_collection_view_compositional_layouts_and_diffable_data_sources
我对 Apple 代码所做的唯一更改是添加此功能:
当我滚动一个正交部分时,将调用 willDisplayCell 以获取其他正交部分中的单元格。例如,我将第 0 节滚动到第 10 单元格,并且 willDisplayCell 被调用以用于 [0, 10]、[1, 10] 和 [2, 10],即使第 1 节和第 2 节仅显示前几个单元格。
一个相关的问题是,当我将第 0 部分一直滚动到开头时,将永远不会为 [0, 0]、[0, 1] 或 [0, 2] 调用 willDisplayCell。
如何解决此问题以获得准确的分析?还是我应该使用其他方法?
swift - NSCollectionViewCompositionalLayout 的自动布局问题
我正在构建集合视图,其中部分具有垂直滚动内容(具有无限滚动视图),并且所有部分彼此相邻放置(这里也使用无限滚动视图,但水平)。它看起来像在这张图片上。
我面临几个问题:
- 标题视图位于视图层次结构中的集合视图下方(它不是
hidden
norenabled
,它只是被集合视图的其余部分覆盖),偏移部分没有帮助,因为它隐藏在整个集合视图下方,而不仅仅是部分. 这是屏幕截图,最右侧是视图层次结构中的第一个子视图,左侧是最后一个子视图(后面有切割的不相关视图)。 - 我的项目具有动态生成的大小(通过
.xib
文件中的自动布局实现),但组合布局的.estimated()
值不会根据单元格内容的给定高度而改变(所有单元格的宽度保持不变)。
这是我的代码:
ios - 在 UICollectionViewCompositionalLayout 子类中覆盖 layoutAttributesForElements(in:)
我正在寻找 UICollectionViewCompositionalLayout 的子类,其目标是覆盖layoutAttributesForElement(in:)
以使用初始布局属性super.layoutAttributesForElement(in: rect)
并在其中一些重叠时修改属性(我的一些项目将渗入其他部分,并且如果一个项目与我的另一个项目重叠希望它向下移动其中一个,直到它们不再重叠)。
这有什么可能的问题吗?我怀疑的一个是如果 layoutAttributesForItem(at:) 被调用,那么我可能会遇到一些问题,因为我无法通过覆盖这个函数来做我想做的事情。