0

質問:

を使用してビューの背景色を変更しようとしていますUITapGestureRecognizer。基本的に、ユーザーがタップすると背景の色が変わり、リリースまたは完了時に背景色がゼロに戻るか、背景色がなくなります。

このアクションは default に似ていますUIButtonが、代わりにこれをビューに配置する必要があります。

問題:

次のようなコードを使用してみました:

- (void)handleTapGesture:(UITapGestureRecognizer *)recognizer
{
        if(recognizer.state == UIGestureRecognizerStateBegan) {
            self.backgroundColor = [UIColor greenColor];
        }
        
        if(recognizer.state == UIGestureRecognizerStateEnded) {
            self.backgroundColor = nil;
        }
}

成功せずに。これは、タップ ジェスチャの開始時と終了時を知る正しい方法ですか?

4

2 に答える 2

1

すでに他の場所で処理されている場合を除き、UIViewControllerのレスポンダーチェーンの一部になっているはずのこれらのメソッドを使用する方が簡単な場合があります。

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {    
    //CGPoint touchPoint = [[touches anyObject] locationInView:self.view];
    NSLog(@"began");
}

- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    //CGPoint touchPoint = [[touches anyObject] locationInView:self.view];
    NSLog(@"end");
}
于 2012-07-09T16:05:50.237 に答える
0

ストーリーボードを使用している場合、または何らかの方法でインターフェイス ビルダーを使用している場合は、UIButton を使用できます。それを少しドラッグして背景にし、タッチ イベントを受け取ったときに別のカスタム カラーが表示されるように設定できます。背景画像が押されている時間。

それが役立つことを願っています!

于 2012-07-09T16:27:12.887 に答える