Ios 如何在UITableView中引用UITableViewCell
表视图和单元格已经创建,并用标签和滑块填充。当值更改时,滑块上有一个iAction 如何将该值返回到单元格中的标签中 我在表视图中链接了一个IBOutletIos 如何在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
@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(因为我有我的类),并删除其中的可选项。我需要强行打开整个牢房。有时答案只是建议。为了得到想要的结果,你必须对答案做一些修改。那为什么要投反对票呢。。你可以向候补者询问观看次数。我没有投反对票。我甚至还不能用我的名誉分数投票(我投了赞成票!