我有我的表视图,其中的单元格中添加了UILongPressGestureRecognizer。问题是,一旦触摸它的单元格突出显示,但是一旦我的长手势开始(按住按钮),突出显示就会消失。手势有效并且仍在保持,但它对用户来说有点混乱,因为他们不知道它是否仍被保持。如何在整个保留期间使单元格保持高亮显示。
一些代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
//add long press gesture for the audio AB (eventually VC and TP as well) list
//so that users can hold the cell and after 5 seconds have the dialpad for editing that entry
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleLongPress:)];
longPress.minimumPressDuration = 1;
[cell addGestureRecognizer:longPress];
}
cell.textLabel.text = [self.tableArray objectAtIndex:indexPath.row];
return cell;
}
- (void)handleLongPress:(UILongPressGestureRecognizer*)sender
{
//used to get indexPath of cell pressed
UITableViewCell *cell = (UITableViewCell *)[sender view];
//get the indexPath of cell pressed
NSIndexPath *indexPath = [self.myTableView indexPathForCell:cell];
//use the index press to figure out the proper join to hold
self.sharedJoinNumber = indexPath.row+286 ;
}
答案 0 :(得分:0)
我确实通过使用
解决了这个问题 //highlight the apprioriate cell
[self.myTableView selectRowAtIndexPath:indexPath animated:FALSE scrollPosition:UITableViewScrollPositionNone];
在- (void)handleLongPress:(UILongPressGestureRecognizer*)sender
但是现在如果取消保留,则需要对单击的下一个单元格进行双击以突出显示。基本上取消长按后的下一个点击并没有引起注意。但我认为这是一个单独的任务,我会相应地提交。上面的代码确实解决了我的问题