如何在UITableView中引用UITableViewCell

时间:2017-05-24 10:07:15

标签: ios swift xcode swift3 xcode8

已创建表格视图和单元格并使用标签和滑块填充。当值更改时,我在滑块上有一个IBAction。

如何将该值返回到单元格中的标签?

我在表格视图中链接了一个IBOutlet。

@IBAction func slideChange(_ sender: UISlider) {

    let currentValue = sender.value    // gets slider's value
    let row = sender.tag               // gets slider's row in table

    myTableView.cell.myLabel.text = sender.value  // Here i need to show updated value


    print("Slider in row \(row) has a value of \(currentValue)")  // works
}

2 个答案:

答案 0 :(得分:-1)

试试这个:

@IBAction func slideChange(_ sender: UISlider){
     let cell: UITableViewCell? = (sender.superview?.superview as? UITableViewCell)  // track cell using your view hierarchy and this your cell
     cell.myLabel.text = sender.value
}

  let rootViewPoint: CGPoint? = sender.superview?.convert(sender.center, to: tblView)
   var indexPath: IndexPath? = tblView?.indexPathForRow(at: rootViewPoint!)
   let cell: UITableViewCell? = tblView?.cellForRow(at: indexPath!)

答案 1 :(得分:-2)

获取对表格视图单元格的引用

let cell = tableView.cellForRow(at: IndexPath(row: sender.tag, section: 0))

更新其标签

cell?.myLabel.text = sender.value

注意:当单元格不可见时,此方法返回nil。在你的情况下,这不会是一个问题。