TableViewCell определенная ячейка не выделяется должным образом - PullRequest
0 голосов
/ 09 октября 2018

Это мой главный экран enter image description here, когда щелчок по выделенной ячейке описания переходит к следующему представлению контроллера, и ячейка подсвечивается, и когда я щелкаю по ячейке, она не подсвечивается, поэтому ячейка не подсвечивается, что означает только нулевой индексячейка не выделяет никого другого, например, один индекс, второй индекс, как выделить другие.

Я пытаюсь добавить выделенную ячейку в табличное представление следующим образом:

enter image description here

Но в моем коде только выделение означает, что первая ячейка означает нулевой индекс

enter image description here

При нажатии на вторую ячейку вторая ячейка не выделяется

Как выделить выделенную ячейку?

Это моя функция для выделения кода:

func setHighlighted(_ highlighted: Bool,animated: Bool){
    if commentView != nil{
        UIView.animate(withDuration: 3, animations: {
            self.commentView.backgroundColor = UIColor(displayP3Red: 235/256, green: 187/256, blue: 194/256, alpha: 1.0)
        }) { (completed) in
            if completed {
                UIView.animate(withDuration: 3, animations: {
                    self.commentView.backgroundColor = .clear
                })
            }
        }
    }

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Xcode 10 Swift4

Реализация описанного ниже метода:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    UIView.animate(withDuration: 3, animations: {
        tableView.backgroundColor = UIColor(displayP3Red: 235/256, green: 187/256, blue: 194/256, alpha: 1.0)
    }) { (completed) in
        if completed {
            UIView.animate(withDuration: 3, animations: {
                tableView.backgroundColor = .clear
                tableView.deselectRow(at: indexPath, animated: true)
            })
        }
    }
}
0 голосов
/ 09 октября 2018

Удалить код под setHighlighted, который устанавливает цвет фона.Это неправильный способ обновления, вы можете использовать setSelected внутри UITableVIewCell

override func setSelected(_ selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: true)

    if selected {
        // set selected color
    } else {
        // set un-selected color
    }
}

ИЛИ следующим подходом

Разрешить выбор нескольких строк из раскадровки ИЛИ с помощью кода

tableView.allowsMultipleSelection = true

let selectedBackgroundView = UIView(frame: CGRect.zero)
cell.selectedBackgroundView = selectedBackgroundView

ИЛИ

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