【问题标题】:Objective-c: How to detect double tap on view?Objective-c:如何检测视图上的双击?
【发布时间】:2011-09-06 07:11:31
【问题描述】:

我正在开发一个应用程序,其中我有多个视图控件,但我想在用户双击视图时启用它们

您可以以双击为例,但在设备中我想在双击时捕捉事件。

【问题讨论】:

    标签: iphone objective-c ios ipad


    【解决方案1】:

    您需要在要被点击的视图中添加UITapGestureRecognizer

    像这样:

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)];
        tapGesture.numberOfTapsRequired = 2;
        [self.view addGestureRecognizer:tapGesture];
        [tapGesture release];
    }
    
    - (void)handleTapGesture:(UITapGestureRecognizer *)sender {
        if (sender.state == UIGestureRecognizerStateRecognized) {
            // handling code
        }
    }
    

    【讨论】:

    • 在存在多个手势识别器的情况下,可以通过使用:[self.view.tapGestureRecognizer requireGestureRecognizerToFail:self.doubleTapGestureRecognizer];
    • 别忘了把 添加到你的类私有接口... @interface IBMYourClassName ()
    【解决方案2】:

    UITapGestureRecognizer 添加到视图中,使用numberOfTapsRequired = 2

    【讨论】:

    • UITapGestureRecognizer 是一个控件吗?它不在控件库中
    • 它是一个 UIGestureRecognizer 子类。你需要用代码写出来。
    • 我用选择器和 UIAlert 编写了这段代码,但它不起作用 - (void)viewDidLoad { UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)]; tapGesture.numberOfTapsRequired = 2; [点击手势释放]; }
    • 您是否使用 addGestureRecognizer: 将其添加到视图中?
    猜你喜欢
    • 2011-02-08
    • 1970-01-01
    • 2013-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    • 2015-11-09
    • 1970-01-01
    相关资源
    最近更新 更多