2011-12-21 77 views
0

在我的地圖應用程序中,我打電話給web srvice,它在發射時在地圖上半徑5km處提供總計可用結果。但如果結果不可用,那麼它會調用更大的半徑,我只想在tableview單元格中顯示最接近的2個結果。那麼如何控制tableview數據的加載。因爲當更大的稱爲數據計數的半徑是100時,我只希望2個結果顯示出100個。任何人都可以向我建議邏輯或教程。在此先感謝如何控制iPhone中的tableview重新加載數據?

+0

以什麼方式顯示2個結果?我的意思是一些排序或什麼? – Sarah 2011-12-21 12:46:42

+0

我希望他喜歡顯示最近的2個結果。排序必須基於距離。 – utsabiem 2011-12-21 12:52:52

+0

是的,我能夠在100個結果中顯示Map上最近的兩個結果。但在我的列表視圖中,所有顯示的都是100,所以我只想在列表視圖中顯示2個。 – 2011-12-21 12:55:43

回答

2

如果您搜索了更大的半徑,請從numberOfRowsInSection中返回2,然後返回UITableViewDataSource,否則返回數組的數量。只要你的數組按正確的順序(距離),那麼它只會被調用兩次,所以你只會返回最接近的2.因爲你仍然存儲了所有的100個,但只顯示2個,意味着你可以添加一個「顯示更多」類型的按鈕,這將顯示下一個10,例如通過從numberOfRowsInSection等返回12。

+0

好吧,讓我試試:) – 2011-12-21 13:44:44

+0

啊,它的GR8 :)工作。感謝尼克爲我節省了時間。 – 2011-12-21 14:14:39

0

爲什麼你想要保存所有的100個數據在你的tableview數組/字典?設置一個標誌來檢測它是否距離半徑5公里或更大。對於第二種情況,只能存儲2個結果。

+0

如何設置標誌和位置?沒有得到你 – 2011-12-21 13:05:52

+0

好吧。您必須在if-else的某處查看距離是否小於5公里。如果距離小於5公里,則取一個BOOL isShortDistance並將其設置在那裏。現在,在解析某些數組/字典中的所有結果時,請檢查此標誌。如果設置,很好。否則,只存儲您需要的兩個結果。 – utsabiem 2011-12-21 13:10:50

相關問題