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 回答