我有一个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
}
答案 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