Установка изображения для ячейки, если index.row находится в моем массиве - PullRequest
0 голосов
/ 15 января 2019

У меня есть табличное представление, которое имеет 100 строк. То, что я хотел бы сделать, это установить изображение для строки, если индекс строки находится в моем массиве, который у меня есть. Я обнаружил, что он устанавливает только изображение для первого числа в массиве. Итак, в этом примере у меня есть [2,3,4,5] в моем массиве. В результате он устанавливает изображение для строки, где index = 2. Вместо того, чтобы для всех чисел. Любая помощь по этому вопросу будет принята с благодарностью!

var completedWorkoutsArray = [2,3,4,5]

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

    let cell = tableView.dequeueReusableCell(withIdentifier: "cellReuseIdentifier")! //1.
    let text = data[indexPath.row]
    cell.textLabel?.text = text


    for i in completedWorkoutsArray {
        if(indexPath.row == i) {
            let image: UIImage = checkmark!
            cell.imageView!.image = image
        }
        else
        {
            let image: UIImage = redX!
            cell.imageView!.image = image
        }
    }

    return cell

}

1 Ответ

0 голосов
/ 15 января 2019

Вы хотите что-то вроде этого:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cellReuseIdentifier")!
    let text = data[indexPath.row]
    cell.textLabel?.text = text

    let image = completedWorkoutsArray.contains(indexPath.row) ? checkmark : redX
    cell.imageView.image = image

    return cell
}

Ваш код завершается ошибкой, потому что он перебирает все значения в массиве. Это устанавливает изображение каждый раз. Последний набор изображений - это тот, который вы видите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...