Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将CollectionViewCell移动到另一个分区_Ios_Swift_Uicollectionviewcell_Collectionview_Sections - Fatal编程技术网

Ios 将CollectionViewCell移动到另一个分区

Ios 将CollectionViewCell移动到另一个分区,ios,swift,uicollectionviewcell,collectionview,sections,Ios,Swift,Uicollectionviewcell,Collectionview,Sections,我有一个UIViewController,里面有一个collectionView。布局可能看起来很混乱,但我使用的是水平滚动UICollectionViewCells,分为3个部分。 主集合视图由3个部分组成。我为每个部分访问3个不同的UICollectionViewCell类,因为它为每个部分获取不同的数据。获取数据后,它会将另一个单元类从队列中排出,该单元类与所有部分访问的单元类相同 每个单元格中有2个按钮。当我按下按钮时,数据库中的值会发生变化。当我重新运行程序时,按下按钮的单元格已移动到

我有一个UIViewController,里面有一个collectionView。布局可能看起来很混乱,但我使用的是水平滚动UICollectionViewCells,分为3个部分。 主集合视图由3个部分组成。我为每个部分访问3个不同的UICollectionViewCell类,因为它为每个部分获取不同的数据。获取数据后,它会将另一个单元类从队列中排出,该单元类与所有部分访问的单元类相同

每个单元格中有2个按钮。当我按下按钮时,数据库中的值会发生变化。当我重新运行程序时,按下按钮的单元格已移动到其相应的部分,该部分应根据更改进行设置。但是,我想在按下按钮后立即实现这一点。如何将单元格从一个分区移动到另一个分区,请记住,显示的单元格位于组成分区的collectionview单元格内,然后位于更大的UICollectionView内。? 我试着研究如何做到这一点,但没有运气,每个人似乎都在使用拖放方法,这似乎太复杂,我试图实现。非常感谢您的帮助


谢谢

当单元格从CollectionView中删除时,我采用的实现上述情况的方法是使用自定义委派。容器集合视图有两个部分,两个不同的单元格包含两个不同的水平UICollectionView。这两个collectionview的单元格具有UIButton。当点击一个collectionView的按钮时,该特定单元格被删除,自定义委托方法调用,另一个collectionView的单元格被填充。我已经为这个特定的场景创建了。为了更好地理解,这里有一个用于演示的GIF


这取决于数据源的结构。基本上是1)从源节数组中删除给定索引路径处的项并暂时保留它。2) 将所需索引处的项插入目标节数组。3) 调用
collectionView.beginUpdate()
。4) 调用
collectionView.deleteRows…
传递源索引路径。5) 调用
collectionView.insertRows…
传递目标索引路径。6) 调用
collectionView.endUpdates()
。是的,这个逻辑似乎是正确的方法,但是我遇到的问题是,由于collectionView的每个部分都有自己的UICollectionViewCell类,因此我要弄清楚如何在各个部分之间移动项……例如;具有3个部分的collectionView。然后在cellForItem中,根据节的不同,显示UICollectionViewCell<代码>如果indexath.section==0{dequeue AnimalsILikeCollectionViewCellsHolder(),如果indexath.section==1{dequeue AnimalsIHateCollectionViewCellsHolder()}等…然后在这两个单元格持有者中,我将一个允许图片显示的AnimalCollectionViewCell和一个“喜欢”和“不喜欢”按钮排出队列。当我单击“不喜欢”按钮时,我希望该单元格从“喜欢”部分移到“不喜欢”部分。如果这有意义,我将感谢任何帮助Hey@ImrulKayes-我找到了p解决方案的艺术。我已经绞尽脑汁太久了,尝试了不同的实现。我所能做的就是从有按钮的单元格中回调,当按下按钮时,它会回调已从队列中退出的单元格。然后,它从数组中删除项,然后通过批更新重新加载节。这将删除它所在的collectionviewcell中的单元格,但是一旦它被删除…现在我需要将该单元格添加到父collectionview的另一个部分中的其他collectionview中,但执行时遇到问题it@ImrulKayes-别担心,这不是一个数据问题,而是一个UI问题。设法解决了。必须将UICollectionViewFlowLayou子类化ut并做一些调整。这是我遵循的链接,以防您感兴趣-