2014-01-10 113 views
0

我做了一個應用程序,它從互聯網下載JSON列表並將JSON列表添加到UITableView。內容在UITableView中後,我們開始通過GPS尋找用戶。我希望UITableView在距離行內容後重新排列。UITableView按照編號重新排列單元格後加載

我得到了每行的距離,但我不知道在距離之後重新排列和排序。

任何提示?

回答

0

如果你有一個數組,該數組包含您想進行排序的值,你可以調用

- (NSComparisonResult)compare:(tableDataObject *)otherObject { 
    return [self.distance compare:otherObject.distance]; 
} 

//NSArray *sortedArray; 
tableData = [tableData sortedArrayUsingSelector:@selector(compare:)]; 

like this answer says.

一旦你有你的有序陣列中的所有你需要做的就是調用-reloadData上你的桌子,它會根據你的價值觀來表格。 (你需要確保你的陣列到你的tableview使用的數組排序)

你也可以做這一切的一個UITableViewAnimation塊的內部,使得它的動畫很喜歡...

[myTableView beginUpdates]; 
[myTableView reloadData]; 
[myTableView endUpdates]; 
+0

它在一個NSMutableDictionary – Hedam

+0

'sortedArrayUsingSelector'返回一個NSArray(不可變),所以你可能需要根據排序後的返回值創建一個新的可變數組。 – Putz1103

0

我建議在接收到更新信息後重新加載表格:每次從GPS接收到更新信息時,都必須按距離排序數據陣列。

現在您已經有了一個新的已排序數組,您可以重新加載表格,它將顯示已排序的單元格。

相關問題