我从nib加载我的单元格,这是UITableViewCell
的子类。
设置每个单元格时userInteraction
设置为YES
(在nib文件中)。
点击一个单元格时,除非暂停一段时间,否则不会显示单元格的选择(在本例中为灰色)。
即使显示了单元格选择样式,手指离开单元格仍然不会触发didSelectRowAtIndexPath:
。
如上所述,解雇它的唯一方法是按住牢房约3秒钟。
有谁知道为什么会这样?所有委托都设置正确,我也使用加载单元格的出列方法。
感谢您的任何建议和指示!
编辑2
道歉,误解了取消选择的方法。他们在这里工作:2012-12-28 04:20:28.120 myApp[2022:907] willSelectRowAtIndexPath: <NSIndexPath 0x1cda0400> 2 indexes [0, 0]
2012-12-28 04:20:28.130 myApp[2022:907] didSelectRowAtIndexPath: <NSIndexPath 0x1cda0400> 2 indexes [0, 0]
2012-12-28 04:20:32.166 myApp[2022:907] willSelectRowAtIndexPath: <NSIndexPath 0x1d936630> 2 indexes [1, 0]
2012-12-28 04:20:32.168 myApp[2022:907] willDeselectRowAtIndexPath: <NSIndexPath 0x1cd24770> 2 indexes [0, 0]
2012-12-28 04:20:32.171 myApp[2022:907] didDeselectRowAtIndexPath: <NSIndexPath 0x1cd24770> 2 indexes [0, 0]
2012-12-28 04:20:32.178 myApp[2022:907] didSelectRowAtIndexPath: <NSIndexPath 0x1d936630> 2 indexes [1, 0]
tableView:cellForRowAtIndexPath:
:
if (indexPath.section == 0) {
CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:@"CellID"];
if (!cell) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
cell = (CustomCell *)[nib objectAtIndex:0];
}
NSArray *data = [[self.indexedData objectForKey:kIndexedDataKey] objectAtIndex:indexPath.row];
CustomObject *dataObject = [data objectAtIndex:0];
[cell setDataObject:dataObject];
return cell;
}
自定义单元格属性:
(单元格的)所有子视图都具有相同的属性:
答案 0 :(得分:3)
正如我觉得的那样愚蠢,正如@NJones所说,我UITapGestureRecognizer
附加了UITableView
。当我删除它时,它工作正常。
答案 1 :(得分:0)
这个话题有点陈旧,但我遇到了同样的问题:
对我来说,问题是因为我的UITableView
已添加到UIScrollView
,更具体地说是添加到contentView
。
似乎在contentView
内部,我必须按住2-3秒才能触发didSelectRowAtIndexPath
方法。
我将TableView移至self.view
而不是contentView
,它解决了问题!