2

我的桌子相对简单,与我以前做过的许多桌子并没有根本不同。然而didSelectRowAtIndexPath,仅在表格的前 5 个单元格上调用。之后,当我点击时,调试语句不会出现。我在这里研究了这个问题,并排除了其他问题中提到的一些可能性: - 表代表已正确设置。- a GestureRecognizer(我设置的)没有吞下印刷机。-willSelectRowAtIndexPath未实施

下面是我的didSelectRowAtIndexPath。让我知道我还能提供什么来帮助解决这个问题。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{

    NSLog(@"didSelect");
    NSArray *visibleCells = [partOfSpeechTable visibleCells];
    UITableViewCell *cell = [visibleCells objectAtIndex:indexPath.row];

    NSNumber *checkedState = [checkedStates objectAtIndex:indexPath.row];
    if ([checkedState boolValue]) 
    {
        [cell setAccessoryType:UITableViewCellAccessoryNone];
        [checkedStates setObject:[NSNumber numberWithBool:NO] atIndexedSubscript:indexPath.row];
    }
    else 
    {
        [cell setAccessoryType:UITableViewCellAccessoryCheckmark];
        [checkedStates setObject:[NSNumber numberWithBool:YES] atIndexedSubscript:indexPath.row];
    }

    [[tableView cellForRowAtIndexPath:indexPath] setSelectionStyle:UITableViewCellSelectionStyleNone];
}

(我可以注释掉所有附属的东西,这没什么区别)。

谢谢你的帮助。

4

4 回答 4

7

事实证明,包含视图比表格本身短。该表已完整显示,但包含视图的截断下方的部分未响应用户交互。解决方案是增加包含视图的大小。

于 2013-08-06T14:56:13.253 回答
2

我遇到过类似的问题,可能是因为

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{    
        return 20;
} 

设置该单元格的大小,使其适合视图。

于 2013-08-06T13:56:25.720 回答
0

在此处输入图像描述

我和杰森有同样的问题。在我的例子中,只有第一行的单元格没有调用 didSelectRowAtIndexPath。我在 xib 文件中增加了 tableview 的包含视图(或者您可以以编程方式进行)。

于 2015-12-05T06:07:52.140 回答
0

如果didSelectRowAtIndexPath仅对某些单元格调用并且应用程序正在模拟器中运行,则尝试重置模拟器。

菜单Hardware > Erase All Content and Settings...

于 2018-11-28T14:54:35.453 回答