如何在Tableview中获取指定行的IndexPath?

时间:2015-06-21 19:25:57

标签: ios swift uitableview tableviewcell

我有一个包含10行的tableView。因为我想得到我的TableView的第三个单元格。所以我必须得到第3行的indexPath。我该怎么做? 我试过了:

            var sections = self.diceFaceTable.numberOfSections()
            var indexPathOfLastSelectedRow = NSIndexPath(forRow: 2, inSection: sections)

            var lastSelectedCell = self.diceFaceTable.cellForRowAtIndexPath(indexPathOfLastSelectedRow) as! TableViewCell

但我收到了一个错误。我怎么能得到它?

编辑:

enter image description here

我有一张带有一些复选标记图像的表格。我想在使用我的代码检查所选行之前取消选中最后一行:

   func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    var cell = self.diceFaceTable.cellForRowAtIndexPath(indexPath) as! DiceFaceTableViewCell
    if selectedDiceFace != indexPath.row {

        var indexPathOfLastSelectedRow = NSIndexPath(forRow: selectedDiceFace, inSection: 0)
        println("indextPath: \(indexPath)")
        println("indextPathOfLastSelectedRow: \(indexPathOfLastSelectedRow)")
        println("selectedDiceFace: \(selectedDiceFace)")
        println("selectedRow: \(indexPath.row)")
        var lastSelectedCell = self.diceFaceTable.cellForRowAtIndexPath(indexPathOfLastSelectedRow) as! DiceFaceTableViewCell
        lastSelectedCell.selectedImg.image = UIImage(named: "uncheck")

        selectedDiceFace = indexPath.row
        cell.selectedImg.image = UIImage(named: "check")


    }

    cell.setSelected(false, animated: true)

}

我可以获取最后一个选中的单元格并取消选中该选项并检查选择行。一切正常,除非我滚动表格,然后检查新行。我将在崩溃时遇到错误"致命错误:在解开一个Optional值时意外发现nil"在线:

var lastSelectedCell = self.diceFaceTable.cellForRowAtIndexPath(indexPathOfLastSelectedRow) as! DiceFaceTableViewCell

我不知道我的代码中的问题是什么导致我遇到这个问题,我滚动表格然后选择该行。

1 个答案:

答案 0 :(得分:2)

节也从0开始编号,因此您需要将inSection指定为0:

var indexPathOfLastSelectedRow = NSIndexPath(forRow: 2, inSection: 0)

当然,如果您只有一个部分。