私は都市を描いた円と四角の束で静的な地図画像を持っている。私はscrollViewの下にサブクラス化されたimageViewにイメージをロードして、ユーザーのタッチをキャプチャしてマップ全体をズーム/スクロールすることができます。私が挑戦しているのは、ユーザがこれらのサークル/スクエアのいずれかに触れて、それがどの都市にあるかを伝えたり、都市の詳細ビューをロードしたりするたびに、ラベルをポップアップしたいということです。私は、 "touchesBegan"イベント中にそれらを参照できるように、imageViewマップに基づいて都市の相対CGPointsをすべて事前にロードできると思っていましたが、すぐに私の頭の中に入り、おそらくこれについて間違った道。iPhoneが地図画像に触れている。
これまでのところすべてが機能しており、タッチのCGPoint x座標とy座標を取得できます。私が持っている最大の問題は、ユーザーが辞書の中にある離散点に近づいていることを判断することです。つまり、辞書に「Boston = NSPoint:{235、118};」と表示されている場合、ユーザーが正確になるまでタッチを繰り返さずに、ユーザーがそのポイントに近づいたことをどのようにして知ることができますか?ユーザーのタッチが既存のポイントに「近い」かどうかを判断する簡単な方法はありますか?私はこれについて正しいことをしていますか?
頭の後ろにあるアドバイスや叩きは大歓迎です。
おかげで、マイク
私はそれについて考えましたが、50+都市点を考えれば、非常に多くのオブジェクトを宣言/管理するのは夢中になります。しかし、応答ありがとう - マイク。 –
狂っているように見えるかもしれませんが、あなたは辞書を繰り返して、都市のポイントを引き出し、15px x 15pxの新しいボタンを作成し、次に都市のポイントでsetCenterを作成します。あなたがする必要があるもう1つの方法は、ボタンをメソッド(addTarget:action:forControlEvent :)に接続し、どのボタンがどの都市に対応しているかを確認する方法です。その1つの方法は、ボタンのタグプロパティを配列の都市のインデックスに設定することです。 –
デーヴありがとう、それは基本的に私がやったことです。私はコンパイルif文比較(+/- 10)を行っている点の辞書を繰り返し、そして許容範囲内の点を見つけると、辞書から市の名前を引いて、都市名とユーザー操作用のボタンがいくつかあります。 - ありがとうございました。マイク –