如何跨不同的视图控制器快速更改某些单元格的视图

时间:2019-10-09 06:08:12

标签: swift uitableview selected

我正在构建一个记录器应用程序,用户可以保存其记录。 如何更改UITableView中某个单元的视图以向用户显示该单元正在播放,并且可以同时更改其他ViewController中具有相同内容的单元? 此外,当音频播放器完成时。该视图可以更改回默认值。

我尝试覆盖setSelected,但是当我重新加载表格视图时该单元格不能保持选中状态,并且在音频结束后无法自行取消选择该单元格。我也无法同时更改具有相同内容(相同音频)视图的单元格。 有办法解决这个问题吗?

override func setSelected(_ selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)
    // Configure the view for the selected state
    if selected {
        print("task has began")
    } else if !selected {
        print("task has finished")
    }
}    

结果将类似于苹果音乐或播客,应用程序中具有相同节目的单元将显示是否正在播放。

1 个答案:

答案 0 :(得分:0)

首先在xib内制作View的IBOutlet

class TableViewCell: UITableViewCell {

    @IBOutlet weak var generaV: UIView!
}

set Identifier  = TableViewCell

,然后在所需的任意多个文件中调用数据源方法,并在不同的VC中更改.red / .blue之类的颜色

在ViewController中调用单元格

     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
                let cell = tableView.dequeueReusableCell(withIdentifier: "TableViewCell", for: indexPath) as! TableViewCell

               if (audioEnded){ 
cell.generaV.backgroundColor  = UIColor.green
}
                 else {
   cell.generaV.backgroundColor  = UIColor.red
}


                return cell
            }