2016-09-16 8 views
0

JSONレスポンスデータからセルを挿入したUICollectionViewがあります。現在、細胞はカテゴリー別に分布し、すべてが円滑に実行されます。JSONのパラメータに基づいてUICollectionViewCellを自動ソートする

私の問題は、セルがアルファベット順に並べ替えられていることです。これはJSONファイルでどのようにソートされているかを示していますが、すべてのカテゴリに含まれる「Likes Count」パラメータで並べ替えたいと思います。

これまでユーザーがセルをドラッグして並べ替える方法を見つけましたが、降順で各カテゴリの「好き」の数に基づいて「自動ソート」を実装したいと考えています。

何か助けていただきありがとうございます。

EDIT - AlamofireをAPI呼び出しに使用し、Swiftyjsonを解析します。データを仮定すると、セル

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 
    } 
+0

をリロードした後にソートされた配列 &であなたのUICollectionViewデータソースに適用されますが、API呼び出しを行うために使用している私達にあなたの応答/モデルクラスとコードを表示します。 –

+0

dataSourceとreloadDataをソートします(必要な場合)。 – Larme

+0

私が使っているコードを含むように私の質問を更新しました。私はSwiftyjsonでカウントの配列を返す限り、私はちょうど私がソートの目的のためにその情報をどのように使うのか分かりません。これはあまりにも単純なリクエストであれば、私はまだこの謝罪の初心者です。 –

答えて

0

のラベルを設定

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() 


       } 
      } 
     } 

は、辞書の配列で、カウントが辞書内のキーと値のペアである「好き」、あなたは

を使用してそれらを並べ替えることができます

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

0

yourArray = JSON応答データがアレイを取得します。

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

&、あなたのUICollectionView

関連する問題