2013-06-05 49 views
-1

我有一個包含位置的表格視圖,並且當我按下按鈕時,我想在附近的位置對它們進行過濾。我在想,當我按下按鈕時,應用程序可以重新加載附近位置的表格視圖,但我無法弄清楚如何進行過濾。UITableView通過按下按鈕排序內容

+0

你想排除「過濾器」的位置,如果他們不在附近?或者你只是想顯示他們從最近到最遠排序?最近可以完成'NSArray'的方法'sortedArrayUsingComparator:' –

+0

對不起,我表達自己錯了我想按最近的位置排序 – darkjuso

回答

1

假設你有CLLocationNSArray的對象,姑且稱之爲locationsCLLocation *currenLocation代表您的當前位置。

NSArray *sortedLocations = [locations sortedArrayUsingComparator:^(id obj1, id obj2) { 
     CLLocationDistance distance1 = [currentLocation distanceFromLocation: (CLLocation *)obj1]; 
     CLLocationDistance distance2 = [currentLocation distanceFromLocation: (CLLocation *)obj2]; 

     return distance1 - distance2; 
    }]; 

編輯:您可以使用CLLocationManager對象通過委託方法來獲取用戶的位置的頻繁更新。你可以從startUpdatingLocation開始。檢查this爲您提供更多信息。

如果您有地理位置,您可以創建一個CLLocation,編號爲– initWithLatitude:longitude:

+0

你可以添加數組和當前位置的代碼嗎? – darkjuso

+0

你是指實例化它們的代碼嗎? –

+0

是的,請在地圖應用程序上使用CLLocationCoordinate2D,但我不知道該爲誰做這個 – darkjuso