我正在创建一个应用程序,我在其中为我的 UITableView 显示一些来自 url 的 rss 内容,直到它在这里完美运行。但在这里我想要的是当用户单击并按住 UITableViewCell 超过 5 秒时执行其他功能。我只想知道一个选择并单击并按住 UITableViewCell 的选择。
谢谢
我正在创建一个应用程序,我在其中为我的 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;
}