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

Posted

技术标签:

【中文标题】在前 5 个单元格后未调用 didSelectRowAtIndexPath【英文标题】:didSelectRowAtIndexPath not called after first 5 cells 【发布时间】:2013-08-06 13:22:32 【问题描述】:

我的桌子相对简单,与我以前做过的许多桌子并没有根本不同。然而 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];

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

感谢您的帮助。

【问题讨论】:

这 5 个单元格是唯一不滚动可见的单元格吗? 感谢您的评论,圣诞老人。实际上,在放弃并在这里发布之后,我马上就找到了答案。我的表格位于另一个 UIView 中,我用它来垂直滑动某些元素,并且 UIView 的长度不足以容纳表格。因此表格将完整显示,但表格中超出包含视图截断的部分没有响应用户交互。我会发布这个作为答案。 【参考方案1】:

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

【讨论】:

如何增加包含视图大小请帮助我在 tableview 中遇到同样的问题。谢谢。 感谢 Jason,我一直在寻找答案。【参考方案2】:

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

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

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

【讨论】:

以上是关于在前 5 个单元格后未调用 didSelectRowAtIndexPath的主要内容,如果未能解决你的问题,请参考以下文章

didDeselectRowAtIndexPath 仅在按下另一个单元格后调用[重复]

在 FirstVC 中选择单元格后,如何为 SecondVC 中的每个单元格调用按钮操作?

在 TableView 中创建的 7 个单元格后添加部分 - Swift

插入单元格后出错:节数无效

使用合并持久性单元管理器后未调用休眠事件侦听器

UICollectionView:添加单元格后内容偏移错误