2011-12-21 15 views
0

私の地図アプリケーションでは、起動時にマップ上に半径5kmで利用可能な合計結果を与えるweb srviceを呼び出しています。しかし、結果が得られない場合は、より大きな半径を呼び出し、テーブルビューのセルで最も近い2つの結果を表示したいだけです。どのようにテーブルビューのデータの読み込みを制御するか。なぜなら、データ・カウントと呼ばれる大きな半径が100であり、100のうち2つの結果しか表示したくないからです。誰かが私に論理またはチュートリアルを提案できますか?事前に感謝iphoneでテーブルビューのリロードデータを制御するには?

+0

2つの結果をどのように表示したいですか?私はいくつかの並べ替えや何かを意味しますか? – Sarah

+0

彼は最も近い2つの結果を表示したいと願っています。ソートは距離に基づいて行われなければなりません。 – utsabiem

+0

はい私は100の結果の中で最も近い2つの結果を表示できます。しかし、私のリストビューでは100個全てが表示されているので、テーブルリストビューでは2つだけにします –

答えて

2

より大きい半径を検索した場合はUITableViewDataSourcenumberOfRowsInSectionから2を返し、そうでない場合は配列の数を返します。配列が正しい順序(遠方にある)であれば、2回呼び出されるので、最も近い2が返されます。

まだ100をすべて保存しているので、2例えば、numberOfRowsInSectionから12を返すなど、次の10を表示する「もっと表示する」タイプのボタンを追加することができます。

+0

私は試してみましょう:) –

+0

ああ、そのgr8 :)働いています。私の時間を節約してくれてありがとう、ニック。 –

0

あなたはtableview配列/辞書に100個のデータをすべて保存したいのですか?半径が5km以上であるかどうかを検出するフラグを設定します。 2番目のケースでは、結果を2つだけ保存します。

+0

フラグを設定する方法とは? didntはあなたを得ます –

+0

距離が5 km未満であるかどうかは、if-elseのどこかでチェックしている必要があります。 BOOL isShortDistanceを取得し、距離が5km未満の場合はそこに設定します。今、いくつかの配列/辞書のすべての結果を解析している間、このフラグをチェックしてください。設定されている場合は、細かい。そうでない場合は、必要な2つの結果だけを保存します。 – utsabiem

関連する問題