14

画像とラベルの束を含む単一の UIView を持つ xib があります。タップ ジェスチャ レコグナイザーを親ビューにドラッグすると、問題なく動作しますが、タップされたラベルに適切に応答できるように、タップの位置を決定するコードを追加する必要があります。

代わりに、Gesture Recognizer を各ラベルや画像にドラッグし、適切に応答する場所に IBActions を接続できれば、はるかに簡単になると思いました。残念ながら、これを機能させることはできません。親ビューから実行するデリゲート メソッドしか取得できません。

私がしたことは、Tap Gesture Recognizer をラベルにドラッグし、View Controller を TGR のデリゲートとして接続し、IBAction メソッドを接続してタップを処理することでした。IBAction メソッドを使用することに加えて、gestureRecognizerShouldBegin:gestureRecognizer デリゲート メソッドでターゲットとアクション メソッドを割り当てることに成功しませんでした。

これはうまくいくはずではありませんか、それとも私はただの希望的観測ですか?

助けてくれてありがとう。

ジョン

4

1 に答える 1

28

UIImages と UILabels では、userInteractionEnabledデフォルトで NO に設定されています。両方でジェスチャ認識エンジンを使用できますが、最初にこのプロパティをリセットする必要があります。

Interface Builder または Storyboard のラベルまたは画像で、userInteractionEnabled のボックスをオンにします。

または、コードで次のようにします (Objective-C):

myLabel.userInteractionEnabled = YES;
myImage.userInteractionEnabled = YES;

(迅速):

myLabel.userInteractionEnabled = true
myImage.userInteractionEnabled = true
于 2011-11-15T10:23:46.757 に答える