Поскольку ячейки можно использовать повторно, вы должны сохранить состояние кнопки в Словаре, а затем установить состояние в cellForRow
Это должно выглядеть следующим образом:
struct ButtonState {
var firstButtonSelected = false
var secondButtonSelected = false
}
var buttonStates = Dictionary<Int, ButtonState>()
// save state in buttonStates
func saveState(cellIndex: Int, buttonIndex: Int, state: Bool) {
var buttonState = buttonStates[cellIndex]
if buttonState == nil {
buttonState = ButtonState()
}
if buttonIndex == 0 {
buttonState.firstButtonSelected = state
} else if buttonIndex == 0 {
buttonState.secondButtonSelected = state
}
}
//set states in cell buttons
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if let buttonState = buttonStates[cellIndex] {
cell.firstButton.selected = buttonState.firstButtonSelected
}
}
Это спокойствиекод не очень понятен, но я попытался объяснить свою идею.