我正在创建一个应用程序,在这里我从UITableView的URL中显示一些rss内容,直到这里工作正常为止。但是这里我想要的是当用户单击并按住UITableViewCell 5秒钟以上时执行其他功能。我只想知道单个选择并单击并按住UITableViewCell的选择。

谢谢

最佳答案

您必须在单元格中添加UILongPressGestureReconizer,并将其minimumPressDuration设置为5。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
        UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];
        longPress.minimumPressDuration = 5.0;
        [cell addGestureRecognizer:longPress];

    }

    // Do additional setup

    return cell;
}


编辑:

请注意,如果您使用的是prototypeCells,则!cell条件将永远不会为真,因此您必须编写如下内容:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
    }
    if (cell.gestureRecognizers.count == 0) {
        UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];
        longPress.minimumPressDuration = 5.0;
        [cell addGestureRecognizer:longPress];
    }
    return cell;
}

09-17 13:55