Насколько я понимаю, вы должны изменить сеттер следующим образом:
set {
_isSelecteda = newValue
if _isSelecteda {
CustomView.backgroundColor = UIColor.white
CustomView.layer.borderColor = UIColor.black.cgColor
}
else {
CustomView.backgroundColor = Colors.searchGameCellBackgroundColor
CustomView.layer.borderColor = Colors.priceLabelBorderColor?.cgColor
}
}
Переменная newValue является фактическим значением, которое принимается при вызове установщика.
Когда вы сделаете это:
customView.isSelecteda = false
Сеттер получает значение false в переменной newValue. Вы устанавливаете это значение на свою личную переменную и выполняете последующие функции на основе этого значения.
Вы можете найти больше о 'oldValue' и 'newValue' в этом вопросе:
Нажмите здесь
РЕДАКТИРОВАТЬ: обоснование того, как это правильное поведение:
get {
return _isSelecteda // false - from init call
}
set {
_isSelecteda = isSelecteda // isSelecteda getter called from above returning false, newValue is neglected
if _isSelecteda { // returns false
CustomView.backgroundColor = UIColor.white
CustomView.layer.borderColor = UIColor.black.cgColor
}
else {
CustomView.backgroundColor = Colors.searchGameCellBackgroundColor
CustomView.layer.borderColor = Colors.priceLabelBorderColor?.cgColor
}
}