Objective-c:如何检测视图上的双击?

Posted

技术标签:

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

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

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

【问题讨论】:

【参考方案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: 将其添加到视图中?

以上是关于Objective-c:如何检测视图上的双击?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UICollectionView 中检测“仅单指”单元格上的双击?

检测 TableView JavaFX 行上的双击

如何检测 QTableView 中的双击

检测 SKNode 上的双击

如何检测 MudBlazor 中表格行的双击?

JList 元素上的双击事件