菜鸟教程小白 发表于 2022-12-13 01:42:51

ios - 当单元格不可见时,UITableView indexPathForCell 返回 null


                                            <p><p>我有一个 UITableView 有很多高行(一次只能在屏幕上显示 2-3 行),当特定 View 添加到 UITableViewCell 层次结构时,还有一些代码以编程方式滚动到特定行。如果目标行在屏幕上可见,indexPathForCell 返回正确的 NSIndexPath。如果用户必须向下滚动才能看到目标行,则返回的 NSIndexPath 为空。 </p>

<p>代码如下:</p>

<pre><code>-(void)scrollToLastSelection {
    if ((firstLabel) &amp;&amp; (secondLabel)) {               
      UITableViewCell *targetCell = ;
      NSIndexPath *targetCellIndexPath = ;
      CGRect targetCellRect = ;

      NSLog(@&#34;------ secondLabelCell: %@&#34;, targetCell);
      NSLog(@&#34;------ secondIndexPath: %@&#34;, targetCellIndexPath);            

      ;
    }
}

- (UITableViewCell *) getTableViewCellFromSubview:(UIView*)subview {
    UITableViewCell* tableViewCell = nil;   
    while (subview.superview != Nil) {
      if (]) {
            tableViewCell = (UITableViewCell*)subview.superview;
            break;
      } else {
            subview = subview.superview;
      }
    }   
    return tableViewCell;
}
</code></pre>

<p>这是 NSLog 的输出:</p>

<pre><code>------ secondLabelCell: &lt;UITableViewCell: 0x947c8f0; frame = (0 120; 320 10); hidden = YES; autoresize = W; layer = &lt;CALayer: 0x947ca80&gt;&gt;
------ secondIndexPath: (null)
</code></pre>

<p>有谁知道获取隐藏的 UITableCell 的正确 NSIndexPath 的方法吗?或者滚动到隐藏的 UITableViewCell?</p>

<p>提前致谢!</p>

<p><strong>更新:</strong>我在一些测试中发现,如果我滚动到(或过去)目标单元格(因此它会在某个点呈现在屏幕上),并且从原始位置(所以目标单元格再次离开屏幕),以下工作(感谢@Deepan):</p>

<pre><code>UITableViewCell *targetCell = ;
NSIndexPath *indexPathFromCellCenter = ;
;
</code></pre>

<p>还有其他想法吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您的问题似乎与以下问题类似,根据接受的答案,您可以考虑使用 indexPathForRowAtPoint 方法来获取索引。</p>

<p> <a href="https://stackoverflow.com/questions/6930026/tableviewindexpathforcell-returns-nil" rel="noreferrer noopener nofollow">tableView:indexPathForCell returns nil</a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 当单元格不可见时,UITableView indexPathForCell 返回 null,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/25732116/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/25732116/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 当单元格不可见时,UITableView indexPathForCell 返回 null