2016-05-02 4 views
0

の領域またはの領域をユーザーがタッチしたと判断しようとしています。UIImageViewで "Region"をタッチしたことを確認

例えば、私は...ユーザーは以下の画像のいずれかで「O」をタッチした場合、私が判断することができるように、各文字の位置を定義するCGRectを持っていると思い

Example Image

マイ最初のアイデアはlocationInViewを使用して絶対座標を与え、それをImageViewの相対サイズに調整することでした。しかし、コンテンツモードではAspectFitを使用しているため、イメージのために、特定の領域の相対的な位置は、画面のサイズと向きに応じて変化します。埋め込みの上/下と横。

完璧な解決策として、この画像をScrollViewに埋め込んでズームすることもできます。しかし、私は必要な場合はそれを忘れることができます。

私はジェスチャーや画像を頻繁に使用しないので、何かが分かりにくいかもしれません。あなたが提供するあらゆる助けや考えは大いに感謝されます。

+0

なぜこれらの文字のすべてを別々の画像ではなく、全体画像を使用しているのですか?またはUIButtonを使用せずに文字を設定するのはなぜですか? – arturdev

+0

理由は「ABC ...」の写真は説明を簡単にするためです。おそらく私はそれをあまりにも単純なものにしました。実際のimageViewは実画像です。例えば、私は北半球の写真を使って、アメリカ、中国、スイスにいつ触れたかを知りたいと思っていました。 – RM34545

答えて

0

簡単な方法と難しい方法があります。このイメージを小さなイメージに分割する簡単な方法です(各レターに1つずつ)。この方法の問題点は、単一の画像のようにそれらを一直線にすることです。この方法をとった場合は、CGRectContainsPointを使ってタップした画像を見ることができます。または、それぞれのボタンを作成したり、各画像にジェスチャ認識子を付けて、何が押されたのかを識別したりすることができます。デザインに単一のイメージを使用する必要がある場合は、各ロケーションを説明するヒットマップを作成する必要があります。各文字には、CGPathMoveToPointを持つ独自のCGMutablePathRefと、その形状と位置を記述するCGPathAddLineToPointが必要です。 CGPathContainsPointメソッドは、あなたがどの人にヒットしたかを伝えます。

+0

Andrew、あなたの迅速な対応に感謝します。まず、「arturdev」への私の答えを読んでもかまいません。第二に、私が取り組んでいる問題はポイントとパスがデバイスと方向ごとに変わることです。私はデバイス/オリエンテーションに依存しないソリューションを開発しようとしています。 – RM34545

関連する問題