didSelectRowAtIndexPath在前5个单元格后未调用

时间:2013-08-06 13:22:33

标签: ios uitableview didselectrowatindexpath

我的桌子相对简单,与以前的许多书架完全不同。然而didSelectRowAtIndexPath仅在表格的前5个单元格中调用。之后,点击时不会出现调试语句。我在这里研究了这个问题并排除了其他问题中提到的一些可能性: - 表委托已正确设置。 - 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 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:2)

我可能因为

而面临类似的问题
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{    
        return 20;
} 

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

答案 2 :(得分:0)

enter image description here

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

答案 3 :(得分:0)

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

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