iOS - UITapGesture确实开始和结束了?

时间:2012-07-09 15:37:08

标签: ios xcode uibutton uitapgesturerecognizer

问题:

我正在尝试使用UITapGestureRecognizer更改视图的背景颜色。基本上当用户点击时,我希望背景改变颜色,在发布或完成时,背景颜色会变回零或没有背景颜色。

此操作类似于默认UIButton,但我需要将其设置为视图。

问题:

我尝试使用类似的代码:

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

        if(recognizer.state == UIGestureRecognizerStateEnded) {
            self.backgroundColor = nil;
        }
}
没有任何成功。这是了解敲击手势开始和结束的正确方法吗?

2 个答案:

答案 0 :(得分: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");
}

答案 1 :(得分:0)

如果您正在使用故事板或通过界面构建​​器以某种方式使用UIButton,将其拖出一点以将其形成背景,然后您可以设置它以便在收到触摸事件时,使用不同的自定义颜色显示背景图像的持续时间。

希望有所帮助!