Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在UITableView中引用UITableViewCell_Ios_Swift_Xcode_Swift3_Xcode8 - Fatal编程技术网

Ios 如何在UITableView中引用UITableViewCell

Ios 如何在UITableView中引用UITableViewCell,ios,swift,xcode,swift3,xcode8,Ios,Swift,Xcode,Swift3,Xcode8,表视图和单元格已经创建,并用标签和滑块填充。当值更改时,滑块上有一个iAction 如何将该值返回到单元格中的标签中 我在表视图中链接了一个IBOutlet @IBAction func slideChange(_ sender: UISlider) { let currentValue = sender.value // gets slider's value let row = sender.tag // gets slider's row

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

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

我在表视图中链接了一个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
}
试试这个:

@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!)

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

let cell = tableView.cellForRow(at: IndexPath(row: sender.tag, section: 0))
更新其标签

cell?.myLabel.text = sender.value

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

您需要重新加载tableview或特定单元格,然后在cellforRowAtIndexpath方法中,尝试将该值设置为该单元格。处理单元格中的滑块并使用委托或闭包。当你知道怎么做的时候,就这么简单了。感谢您的快速响应。我认为您缺少的是更新数据模型,以便cellForItem方法在滚动时使用更新的值配置单元格。@Sean您尝试过这个答案吗?是的。我对superview计数的看法是错误的。我需要将UITableViewCell类型更改为PersonTableCell(因为我有我的类),并删除其中的可选项。我需要强行打开整个牢房。有时答案只是建议。为了得到想要的结果,你必须对答案做一些修改。那为什么要投反对票呢。。你可以向候补者询问观看次数。我没有投反对票。我甚至还不能用我的名誉分数投票(我投了赞成票!