我正在创建具有重新排序功能的UICollectionView。有点像this。
我想限制集合视图的每个部分中的元素数量,并更改"订购动画" (当一个元素在拖动时)。
例如:
您有一个包含3个部分(A,B和C)的集合视图
这三个部分具有最大数量的元素
您将一个元素从B部分移动到A部分
A部分的最后一个元素应该移到B部分,而不是增加A部分中的元素数量。
知道如何实现此功能吗?
答案 0 :(得分:0)
一些if else条件会和一个部分中的当前项目数组以及如果items.count高于允许的最大值,请检查下一部分的项目数量,如果低于那么最大值将其丢弃。
你可能想尝试像这样的扩展:
https://github.com/michel-moreau/DraggableCollectionView
https://github.com/lognllc/DraggableCollectionView
https://github.com/liangdahong/BMDragCellCollectionView
https://github.com/Instagram/IGListKit
请务必下载并演示他们可能正在寻找的代码。
答案 1 :(得分:0)
为什么不尝试使用查看所有三个部分的函数,查看哪些部分包含太多项目然后移动它们。然后...当返回每个集合视图中的项目数时,如果该函数超过每个部分的最大元素数,则调用该函数。如果您需要澄清,请告诉我。
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)
}