Ios swift 3 удаляет содержимое каждой ячейки при перезагрузке tableView

userdsd спросил: 28 апреля 2018 в 08:51 в: ios

Я создаю quizApp, используя DLRadioButton с меткой в ​​каждой ячейке tableView, метка устанавливается из storyBoard (с тегом), но Я установил radioButtons программно для лучшего дизайна, когда я нажимаю следующую кнопку, чтобы перейти к следующему вопросу. Новые перекрытия Radiobutton со старым Radiobutton

вот первый вопрос

вот второе изображение

Ниже мой код

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell : UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "cell")!
    var reponse = rep[(indexPath as NSIndexPath).row]     let content:UILabel=cell.viewWithTag(111) as! UILabel
    //var ra:UIButton=cell.viewWithTag(112) as! UIButton    content.text=reponse["rep"] as? String
    content.sizeToFit()
    let repiii = reponse["rep"] as? String   // var radio = DLRadioButton()
    if (self.type=="case à cocher"){
       // cell.contentView.delete(radioButtons)
        let frame = CGRect(x: 50, y: 20, width: 200, height: 40)
       let squareButton = self.createRadioButton(frame: frame, title:repiii!, color:  UIColor.red,compt: squareButtons.count,sqaure:1);        squareButtons.append(squareButton)
         cell.contentView.addSubview(squareButton)
    }
    else{
        let frame = CGRect(x: 50, y: 20, width: 200, height: 40)       let radioButton = self.createRadioButton(frame: frame, title:repiii!, color:  UIColor.blue,compt: radioButtons.count,sqaure:0);       //radioButton.isMultipleSelectionEnabled = true
        print(radioButtons.count)
        radioButtons.append(radioButton)
     cell.contentView.addSubview(radioButton)
    }    return cell
}

любое предложение оценено

1 ответ

Есть решение
iGenio ответил: 28 апреля 2018 в 01:17

в вашем коде, сразу после строки

let cell : UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "cell")!

добавьте это:

for subview in cell.contentView.subviews {
    subview.removeFromSuperView()
}
TheTiger ответил: 28 апреля 2018 в 11:47
Он должен быть cell.contentView not cell.
userdsd ответил: 28 апреля 2018 в 01:10
спасибо за ответ, когда я добавил цикл, у меня есть следующая ошибка. Тип "UIView" не соответствует последовательности протоколов. Я пытаюсь решить эту проблему :)
iGenio ответил: 28 апреля 2018 в 01:18
только что отредактированный с правильным синтаксисом
userdsd ответил: 28 апреля 2018 в 01:46
спасибо, это решило мою проблему