scrollToRowAtIndexPath抛出错误

时间:2016-09-15 09:33:53

标签: ios swift uitableview

UITableView _contentOffsetForScrollingToRowAtIndexPath:atScrollPosition:]: section (3) beyond bounds (1).'

我的桌面视图中显示了一系列信息,当我点击按钮时,我希望它向下滚动到某个单元格。

最初我以为我得到了这个错误,因为我的索引跳转到:

 if let index = peopleListArray.index(where: { $0.UID == currentUser }) {
       print(index)
            let NSIndex = NSIndexPath(index: Int(index) )
            tableView.reloadData()
            print(peopleListArray.count)
            print(NSIndex)
            tableView.scrollToRow(at: NSIndex as IndexPath , at: .top, animated: true )
        }

但后来我换了“让NSINDex ......跟

 let NSIndex = NSIndexPath(index: 1 )

它仍然会抛出同样的错误。

当我打印出我的数组计数和我的NSIndex时,我总是得到一个8来计数(这是正确的)我得到3为NSINdexPath这是正确的。

如果3超出了我的array.count范围,我可以理解错误,但绝对不是。

任何想法?

2 个答案:

答案 0 :(得分:2)

您遇到的问题似乎是部分而不是行。尝试构建这样的索引:

NSIndexPath(item: index, section: 0)

注意该部分设置为0。

答案 1 :(得分:-1)

这里有两个选项可能是错误的:

  1. 你传递了一个超出范围的部分,即索引小于0或大于

    中指定的部分数
     numberOfSectionsInTableView:(UITableView *)tableView
    
  2. 因此,首先尝试使用0作为节号。

    1. 行的索引超出指定部分的范围(每个部分可能不同)