TableView с пользовательскими ячейками.Когда ячейки прокручиваются (deque), они снова появляются со смешанными цветами UIView.Могу ли я установить UIView на indexPath.row? - PullRequest
0 голосов
/ 11 декабря 2018

// Первый подкласс

class reportCell: UITableViewCell {
    @IBOutlet weak var view1: UIView!
    @IBOutlet weak var repLabel: UILabel!
}

// Второй подкласс

class sectionCell: UITableViewCell {
    @IBOutlet weak var view2: UIView!
    @IBOutlet weak var secLabel: UILabel!
}

//

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {


    if cellType == 0 {

        let cell = tableView.dequeueReusableCell(withIdentifier: "cellRep", for: indexPath) as! reportCell

        cell.repLabel?.text = type[indexPath.row]

        cell.view1.backgroundColor = UIColor(red: 25/255, green: 34/255, blue: 40/255, alpha: 1)


        return cell

    }

    if cellType == 1 {

        let cell = tableView.dequeueReusableCell(withIdentifier: "cellSec", for: indexPath) as! sectionCell

        cell.secLabel?.text = type[indexPath.row]

        cell.view2.backgroundColor = UIColor(red: 201/255, green: 113/255, blue: 91/255, alpha: 1)

        return cell

    }
    return UITableViewCell()
}

Ответы [ 2 ]

0 голосов
/ 16 декабря 2018

Хорошо, я не мог делать то, что хотел с UIView.Представления не были повторно использованы в правильном indexPath.row.Помните, я случайно добавлял разные ячейки нажатием кнопки.Поэтому я не смог использовать формат шаблона для цветов в массиве.

Завершено использованием UIImageViews в нужных мне цветах.Они легко присваиваются indexPath.row так же, как метки.

0 голосов
/ 11 декабря 2018

Если ваша таблица имеет статическое количество ячеек, вы можете добавить цвета в нужной последовательности в массив и взять из него индекс indexPath.row.Как то так let colors = [UIColor.red, UIColor.blue, UIColor.yellow] cell.backgroundColor = colors[indexPath.row]

...