找不到成员indexPathForCell

时间:2014-06-22 18:05:45

标签: ios uitableview swift

我正在使用在自定义单元格中有textFiled的UITableView。

在事件textField EditingDidEnd:

@IBAction func saveValue(sender: UITextField) {

    var cell = sender.superview.superview
    var cellIndexPath = self.tableView.indexPathForCell(cell)

}

On string" var cellIndexPath = self.tableView.indexPathForCell"我收到了错误

  

"找不到成员indexPathForCell"

如何在swift中使用indexPathForCell?

1 个答案:

答案 0 :(得分:1)

这是因为编译器推断cell属于UIView类型而indexPathForCell()需要UITableViewCell。您可以将其明确地转换为UITableViewCell,如下所示:

var cell = sender.superview.superview as UITableViewCell

但是,这不是从其子视图中获取单元格或indexPath的可靠方法(在您的情况下为UITextField)。

你应该选择:

let pointInTable: CGPoint = sender.convertPoint(sender.bounds.origin, toView: self.tableView)
let cellIndexPath = self.tableView.indexPathForRowAtPoint(pointInTable)