【问题标题】:UITableView does not scroll to cellUITableView 不滚动到单元格
【发布时间】:2011-02-24 00:39:33
【问题描述】:

我正在尝试将我的表格视图滚动到第二个单元格:

[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0] 
                                  atScrollPosition:UITableViewScrollPositionNone 
                                           animated:NO];

我得到错误:

 *** Terminating app due to uncaught exception 'NSRangeException', reason: '-[UITableView scrollToRowAtIndexPath:atScrollPosition:animated:]: section (1) beyond bounds (0).

'

我的 tableview 有 30 个单元格,没有任何部分。

【问题讨论】:

  • 显示numberOfSectionsInTableView:的代码

标签: iphone objective-c cocoa-touch xcode uitableview


【解决方案1】:

如果没有section,可以试试indexPathWithIndex:类构造函数:

[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathWithIndex:1] 
                      atScrollPosition:UITableViewScrollPositionNone 
                              animated:NO];

【讨论】:

  • 该调用在 4.0 中已弃用。我知道我们不能讨论它,所以在不破坏 NDA 的情况下 - 如果我不包含任何部分,我如何指定一个部分?
  • @Sheehan:我在 XCode、标题或文档中看不到弃用警告。您确定该调用已被弃用吗?
  • 对不起,我错了,它没有被弃用。我确实收到了这个错误:*** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“与 UITableView 一起使用的索引路径无效。传递给表视图的索引路径必须恰好包含两个指定节和行的索引。如果可能,请使用 UITableView.h 中 NSIndexPath 上的类别。'
【解决方案2】:

我建议您创建一个部分来存储您的单元格。此部分可以没有标题,这样在视觉上就无法区分,而这使您不必与预期的 API 路径作斗争。

【讨论】:

    【解决方案3】:

    当我收到与单节表相同的错误消息时,我通过创建一个包含行和节的 NSIndexPath 来修复它:

    NSIndexPath *ip = [NSIndexPath indexPathForRow:itemCurrentlyPlaying inSection:0];
    

    不好找,但是相关的便捷构造函数记录在这里:

    http://developer.apple.com/iphone/library/documentation/UIKit/Reference/NSIndexPath_UIKitAdditions/Reference/Reference.html

    【讨论】:

      【解决方案4】:

      像 pollyp 一样,我可以使用 indexPathForRow:inSection:。我是从我的viewWillAppear: 打来的。

      您的错误消息似乎表明甚至没有一节。您是否可能在加载表数据之前调用scrollToRowAtIndexPath:atScrollPosition:animated:(例如在viewDidLoad 中)?稍后尝试在viewWillAppear: 中调用它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多