0

アプリには、円の周囲を移動するいくつかの画像(同じ形状とサイズ、異なる色)があります。これは、コンパスの針として機能するカーソルのようなものです。それぞれをタップして、どれをタップしたかに基づいてメッセージを表示できるようにしたいのですが、どのようなアプローチが適しているのかわかりません。今、私はそれらをUIButtonに入れようとしていますが、それは私に多くの面倒を与えています。UITapGestureRecognizerでこれを行う方法はありますか?それらの1つを画面に表示することは可能ではないかと思いますが、6つの異なる移動領域を追跡し、他のタップイベントを通過させることができます。また、6つの異なる認識機能を追加することは良い考えではないと思うので、私は誰かがこれについて行く方法についての提案があるかどうか疑問に思います。CoreGraphicsを使用しています。

4

1 に答える 1

0

この効果を達成するための最良の方法は、おそらく、タッチをオーバーライドするメソッドを持つ UIButton (または必要に応じて UIControl) をサブクラス化することです。たとえば、UIControl をサブクラス化する場合は、以下のメソッドをオーバーライドして、タッチを検出し、それらに対して希望することを行うことができます。

-(BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event

次に、 drawRect: メソッドでそれをオーバーライドする (そしてコメントを解除する) ことで、どのような外観にしたい場合でも実行できます。UIButton、UIImageView、UIControl など、何でもサブクラス化し、サブクラス内でタッチを追跡する場合も同様です。

于 2012-08-23T19:56:43.293 に答える