Как быстро изменить вид определенной ячейки на разных контроллерах представления - PullRequest
0 голосов
/ 09 октября 2019

Я создаю приложение для записи, которое пользователи могут сохранять свои записи. Как я могу изменить представление определенной ячейки в UITableView, чтобы показать пользователям, что эта ячейка воспроизводится, и ячейка с тем же содержимым в других ViewControllers может быть изменена одновременно? Кроме того, когда аудиоплеер закончил. Вид может быть изменен обратно на значение по умолчанию.

Я попытался переопределить 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 голосов
/ 09 октября 2019

Сначала создайте IBOutlet of View Inside xib

class TableViewCell: UITableViewCell {

    @IBOutlet weak var generaV: UIView!
}

set Identifier  = TableViewCell

и вызовите метод источника данных в максимально возможном количестве файлов и измените цвет, как .red / .blue, в другом VC

Вызов ячейки в 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
            }
...