2011-12-21 49 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

相关问题