长按时突出显示表格视图单元格。
我提到了链接
长按工作正常但表视图单元格没有突出显示。所以我将以下行添加到handleLongPress方法
[self.myTableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
长按细胞突出显示后,还应满足以下条件,
长按应该像触摸桌面视图单元格一样,但它不应该是实际触摸功能。请指导我。
答案 0 :(得分:0)
尝试:
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
}
答案 1 :(得分:0)
请使用这种类型的逻辑。 当您长按开始时,在长按结束时将行显示为已选中,您必须取消选择行。
-(IBAction)longPressBegan:(UILongPressGestureRecognizer *)recognizer
{
if (recognizer.state == UIGestureRecognizerStateBegan)
{
// Long press detected, Just highlight row
}
else
{
if (recognizer.state == UIGestureRecognizerStateCancelled
|| recognizer.state == UIGestureRecognizerStateFailed
|| recognizer.state == UIGestureRecognizerStateEnded)
{
// Long press ended, deselect row
}
}
}
希望这会帮助你............
答案 2 :(得分:0)
所以我假设你所有的条件都只是在你已经长时间按下牢房的情况下。 看起来你可以获得长时间的印刷工作。所以现在
在长按活动中添加
[self.myTableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
YourCell *cell = [self.myTableView cellForRowAtIndexPath:indexPath];
//I dont’t know your model for this tableview so I am using cell tag for it
//using 1 for selected
//2 for unselected
// 3 for long pressed one
cell.tag = 3;
isHiglighted = YES;
在didSelectRowAtIndexPath
中使用以下sudo代码- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if(isHiglighted)
{
YourCell *cell = [self.myTableView cellForRowAtIndexPath:indexPath];
if(cell.tag==3)
{
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
cell.tag = 2;
isHiglighted = NO;
}
else if(cell.tag==1)
{
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
cell.tag = 2;
}
else
{
[self.myTableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
cell.tag = 1;
}
}
else
{
// do your stuff ofr single tap if user never long pressed
}
}