Потерянные кнопки выбора после прокрутки - PullRequest
0 голосов
/ 22 мая 2018

У меня есть таблица, в которой используются повторно используемые ячейки.Каждая ячейка имеет метку и вид стека, который содержит 5 кнопок.Проблема заключается в том, что после прокрутки ячейки можно использовать повторно, выбор кнопок теряется.Каков наилучший способ гарантировать, что выбор кнопок не будет потерян при прокрутке пользователя.

Проблема не в захвате выбора кнопок.Только часть пользовательского интерфейса, где после прокрутки выбрано не то изображение, которое отображается, однако значение уже записано.

1 Ответ

0 голосов
/ 22 мая 2018

Поскольку ячейки можно использовать повторно, вы должны сохранить состояние кнопки в Словаре, а затем установить состояние в 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
   }
}

Это спокойствиекод не очень понятен, но я попытался объяснить свою идею.

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