gpt4 book ai didi

iphone - 如何检测 UITableView 中某个单元格的双击?

转载 作者:行者123 更新时间:2023-12-03 18:14:27 26 4
gpt4 key购买 nike

如何检测 UITableView 中某个单元格的双击?

如果用户进行了一次触摸,我想执行一个操作,如果用户进行了两次触摸,我想执行另一个操作?我还需要知道进行触摸的索引路径。

我怎样才能实现这个目标?

谢谢。

最佳答案

如果您不想创建 UITableView 的子类,请使用带有 TableView 的 didSelectRowAtIndex: 的计时器

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//checking for double taps here
if(tapCount == 1 && tapTimer != nil && tappedRow == indexPath.row){
//double tap - Put your double tap code here
[tapTimer invalidate];
[self setTapTimer:nil];

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Double Tap" message:@"You double-tapped the row" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
[alert show];
[alert release];
}
else if(tapCount == 0){
//This is the first tap. If there is no tap till tapTimer is fired, it is a single tap
tapCount = tapCount + 1;
tappedRow = indexPath.row;
[self setTapTimer:[NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(tapTimerFired:) userInfo:nil repeats:NO]];
}
else if(tappedRow != indexPath.row){
//tap on new row
tapCount = 0;
if(tapTimer != nil){
[tapTimer invalidate];
[self setTapTimer:nil];
}
}
}

- (void)tapTimerFired:(NSTimer *)aTimer{
//timer fired, there was a single tap on indexPath.row = tappedRow
if(tapTimer != nil){
tapCount = 0;
tappedRow = -1;
}
}

HTH

关于iphone - 如何检测 UITableView 中某个单元格的双击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1031254/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com