集合视图单元格的动画排序

时间:2017-06-08 04:00:40

标签: ios swift xcode cocoa-touch uicollectionview

我试图在数据源数组排序时显示UICollectionView中的单元格移动到位。我做了以下尝试,由于某种原因,即使排序本身正确完成,单元格也会移动到不正确的位置。我知道,因为我之后可以触发一个简单的reloadData(),并且单元格将以正确的顺序显示(当然没有移动的动画)。我的逻辑如下,apples是数据源数组:

let sortedApples = apples.sort({$0.tastiness < $1.tastiness})
let sortMap = apples.map({sortedApples.indexOf($0)!})

self.CollectionView.performBatchUpdates(
{
    for i in 0 ..< sortMap.count
    {
        if i != sortMap[i]
        {
             self.CollectionView.moveItemAtIndexPath(NSIndexPath.init(forItem: i, inSection: 0), toIndexPath: NSIndexPath.init(forItem: sortMap[i], inSection: 0))
        }
    }
},
completion:
{ finished in
    //apples = sortedApples
})
apples = sortedApples //tried this in the completion block too but that also didn't work

有人可以弄清楚我做错了什么吗?或者,如果有另一个可行的解决方案,只要它可以适用于可变的单元格高度,它也会有所帮助。

谢谢!

0 个答案:

没有答案