11

のコンテナとして機能するUITapGestureRecognizerを使用しているため、使用しています。基本的に私はアクションメソッドを引数で使用しようとしているので、たとえばアクションメソッドに値を送信して、タップによってUILabelがトリガーされたものに応じてどのアクションを実行するかを知ることができます。UIScrollViewUILabelmyLabel.tag

それを行う 1 つの方法は、s と同じ数のアクション メソッドを持つことですが、これUILabelはコード的にはあまり「きれい」ではありません。私が達成したいのは、switch ステートメントを使用したアクション メソッドを 1 つだけ持つことです。

これは可能ですか、それとも次のようにする必要がありますか (ため息):

UITapGestureRecognizer *myLabel1Tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myLabel1Tap)];
[myLabel1Tap addGestureRecognizer:myLabel1Tap];

UITapGestureRecognizer *myLabel2Tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myLabel2Tap)];
[myLabel1Tap addGestureRecognizer:myLabel2Tap];

UITapGestureRecognizer *myLabelNTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myLabelNTap)];
[myLabel1Tap addGestureRecognizer:myLabelNTap];

- (void)myLabel1Tap {
// Perform action
}

- (void)myLabel2Tap {
// Perform action
}

- (void)myLabelNTap {
// Perform action
}
4

2 に答える 2

5

UITapGestureRecognizerジェスチャ ハンドラー ( your ) で and を1 つだけ使用できmyLaberXTapます。構文は次のとおりです。

 - (void)handleGesture:(UITapGestureRecognizer*)gestureRecognizer {
     ...
 } 

gesture.view作業中のビューを知るために使用します。

于 2011-07-08T22:05:20.657 に答える