如何在 Swift 4 中为 UICollectionView 的部分设置最大元素数?
Posted
技术标签:
【中文标题】如何在 Swift 4 中为 UICollectionView 的部分设置最大元素数?【英文标题】:How to set a max number of elements for sections of a UICollectionView in Swift 4? 【发布时间】:2018-06-08 23:10:13 【问题描述】:我正在创建一个具有重新排序功能的 UICollectionView。有点像this。
我想限制集合视图每个部分的元素数量并更改“排序动画”(当元素拖动时)。
例如: 您有一个包含 3 个部分(A、B 和 C)的集合视图。 这 3 个部分具有最大元素数。 您将一个元素从 B 部分移动到 A 部分。 A节的最后一个元素应该移动到B节,而不是增加A节的元素个数。
知道如何实现这个功能吗?
【问题讨论】:
让别人为你写代码并不是 *** 的真正目的。到目前为止,您尝试过什么?发布一些代码,以便我们查看您在哪里遇到问题... 【参考方案1】:如果是其他条件,则可以执行某些条件,并且一个部分中的当前项目数组,如果 items.count 高于允许的最大值,请检查下一部分的项目数量,如果低于则 max 将其放在那里。
您可能想尝试一些类似这样的扩展:
https://github.com/michel-moreau/DraggableCollectionView
https://github.com/lognllc/DraggableCollectionView
https://github.com/liangdahong/BMDragCellCollectionView
https://github.com/Instagram/IGListKit
请务必下载并演示他们的代码,这可能是您正在寻找的。p>
【讨论】:
所以没有办法通过重写方法或者在 CollectionView 中设置参数来实现这种行为吧? 没有以编程方式检查您是否没有超过 maxcount 集编号。虽然您可能能够以 3rd 方库的形式找到扩展【参考方案2】:您为什么不尝试使用一个功能来查看所有三个部分,查看哪些部分有太多项目,然后移动它们。然后...当返回每个集合视图中的项目数时,当它超过每个部分的最大元素数时调用该函数。如果您需要澄清,请告诉我。
func collectionView(.....numberOfItemsOrRows?...)
if (newArrayCountForList1 > maxElements)
redistributeArrayValues()
// copy the above if statement with function inside for the next 2 arrays
(Assuming each section has an array representing elements in that section)
【讨论】:
以上是关于如何在 Swift 4 中为 UICollectionView 的部分设置最大元素数?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 4 中为 JSON 编写可解码,其中键是动态的?
在 iOS Swift 中,在 Swift 4 中的 TableView 中为 CollectionView 集成不同的数组
如何在 swift 中为 uiimageview 制作自定义边框
swift 如何在Swift中为UITextField设置填充。