私はUILabelを持っています。その中のタッチエリアを光らせたい。つまり、その UILabel のポイントをクリックすると、タッチ ポイントの周りの小さな円形部分が光る効果で表示されます。どうやってこれを手に入れることができますか?
3 に答える
UILabels はタッチに反応しません。
カスタム タイプの UIButton を使用し、通常の状態と (光っている) 強調表示された状態の画像を提供します。
CALayer
グローを希望する方法に基づいてまたはを作成し、CAGradientLayer
それをラベルのレイヤーのタッチ位置にサブレイヤーとして追加することで、それを行うことができます。
touch on を有効にするには、プロパティUILabel
を参照してください。userInteractionEnabled
に設定する必要がありますYES
。
UITapGestureRecognizer
次に、タップを取得するためにラベルにを添付する必要があります。タッチ位置を取得したら、カスタム グロー レイヤーをサブビューとしてラベルのレイヤーに非表示の状態で追加します。グローレイヤーを内外にアニメーション化します。完了時にグロー レイヤーをサブレイヤーとして削除する前に、数回繰り返すことをお勧めします。
Gesture Recognizer は優れていますが、指が触れたときに開始し、指が触れなくなったときに停止し、その間に指を置いて動き回る何かを実行したい場合、そのための優れた Gesture Recognizer を考えるのは困難です。その場合は、touchesBegan、touchesMoved、および touchesEnded (touchesCancelled を忘れないでください) を使用する方がよいと思います。
これらのメソッドをView Controllerに配置するか、UILabelをサブクラス化できます。いずれにせよ、ラベルで userInteractionEnabled = YES を設定します。
その効果をグラフィカルに表現する方法については、現時点では巧妙なアイデアはありません。