Проблема заключается в повторном использовании ячеек; вам нужно сбросить исходное состояние ячейки, например, так:
class HelightTableViewCell: UITableViewCell {
override func prepareForReuse() {
super.prepareForReuse()
self.layer.borderWidth = 0.0
self.layer.borderColor = UIColor.clear.cgColor
}
}
При создании ячейки на prepareForReuse, измените исходное состояние и выберите, установите ли свойства следующим образом:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
guard let cell = tableView.cellForRow(at: indexPath) as? HelightTableViewCell {
return
}
cell.layer.borderWidth = 2.0
cell.layer.borderColor = UIColor.blue.cgColor
}