У меня есть табличное представление и 10 различных прототипов ячеек.Я использовал раскадровку и создал собственный класс UITableCell для каждой ячейки.В CheckBoxCell есть флажок.Я создал эти флажки в цикле в соответствии с количеством опций.
Проблема в том, что после того, как я установил флажок, значение флажка изменяется, но когда я прокручиваю вверх или вниз представление таблицы, значение флажка изменяется с начальным значением.
Я исследовал некоторые вопросы в stackoverflow.Я живу этой проблемой, потому что после каждой прокрутки dequeReusebleCell работает и воссоздать ячейку в очереди.Я пытался использовать эти решения, но мне это не удалось.
Я новичок в Swift и не знаю, как решить эту проблему.Может кто-нибудь сказать мне, как я могу решить эту проблему и каков правильный подход?
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let object = surveyDetailArray.first!.elements[indexPath.row]
switch object.type {
case CellConfig.checkbox.rawValue:
let cell = tableView.dequeueReusableCell(withIdentifier: "CheckboxCell", for: indexPath) as! CheckboxCell
let object = surveyDetailArray.first!.elements[indexPath.row]
for label in object.options {
cell.checkbox = BEMCheckBox()
cell.checkbox.onAnimationType = .bounce
cell.checkbox.offAnimationType = .bounce
cell.checkbox.boxType = .square
cell.checkbox.onFillColor = .red
cell.checkbox.offFillColor = .white
cell.checkbox.onCheckColor = .white
cell.checkbox.delegate = self
cell.checkbox.tag = label.id
cell.contentView.addSubview(cell.checkbox)
}
return cell
}