0

我正在从一个 nib 加载我的单元格,它们是UITableViewCell.

这些单元中的每一个都设置userInteractionYES(在 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;
}

自定义单元格属性:

在此处输入图像描述

(单元格的)所有子视图都具有相同的属性:

在此处输入图像描述

4

2 回答 2

3

正如@NJones 所说,我觉得自己很愚蠢,但我UITapGestureRecognizerUITableView. 当我删除它时,它工作正常。

于 2012-12-28T21:06:46.033 回答
0

这个话题有点老了,但我遇到了同样的问题:

对我来说,问题是因为 myUITableView被添加到 anUIScrollView并且更具体地添加到它的contentView. 看来,在里面contentView,我必须按住 2-3 秒才能触发该didSelectRowAtIndexPath方法。

我将我的 TableView 移到self.view而不是contentView它解决了问题!

于 2014-01-27T14:47:05.157 回答