基于JSON swift中的参数自动排序UICollectionViewCell

时间:2016-09-16 09:59:22

标签: ios json sorting uicollectionviewcell

我有一个UICollectionView,其中的单元格是从JSON响应数据中填充的。目前,细胞按类别填充,一切运行顺利。

我的问题是单元格是按字母顺序排序的,这是它们在JSON文件中的排序方式,但我希望它们按照"喜欢计数排序"每个类别包含的参数。

到目前为止,我已经找到了如何让用户拖动并重新排列单元格,但我想实现一个"自动排序"基于"喜欢"的数量每个类别按降序排列。

我感谢任何帮助。

编辑 - 使用Alamofire进行API调用,使用Swiftyjson进行解析。

Alamofire.request(.GET, "mydomain").responseJSON { (responseData) -> Void in
            if((responseData.result.value) != nil) {

                let swiftyJsonVar = JSON(responseData.result.value!)

                if let resData = swiftyJsonVar.arrayObject {

                    self.arrRes = resData as! [[String:AnyObject]]


                }

                if self.arrRes.count > 0 {

                   self.collectionView.reloadData()


                }
            }
        }

设置单元格的标签

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {

        let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! HomeCollectionViewCell
        var dict = arrRes[indexPath.row]

        cell.catLabel.text = dict["name"] as? String
        let likes = dict["likes count"] as? Int
        cell.layoutIfNeeded()

        return cell
    }

2 个答案:

答案 0 :(得分:0)

假设数据是一个字典数组,并且"喜欢" count是字典中的键值对,您可以使用

对它们进行排序

array.sortInPlace({$0.likes > $1.likes})

答案 1 :(得分:0)

  

yourArray =获取数组的JSON响应数据;

NSArray *sortedArray = [yourArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:[[NSSortDescriptor alloc] initWithKey:@"likes" ascending:NO]]];

&安培;然后应用于排序数组中的UICollectionView数据源 &安培;重新加载UICollectionView