Hallo,
aktuell versuche ich meiner TableView beizubringen das sie die bereits erzeugten Zellen bei einem refreshData wiederverwenden soll und ggf. neue hinzufügt wenn nötig. Ich wollte also die Funktion viewWithTag() verwenden um genau das zu erreichen jedoch will das nicht so recht klappen.
Das Problem das ich nämlich habe ist das meine TableView bei jedem refreshData() immer neue Zellen zu den aktuell bestehenden hinzufügt weshalb ich dann immer die Fehlermeldung "Index is out of range" bekomme.
Kann mir einer von euch vielleicht sagen was das Problem ist und was ich falsch mache ?
Hier der Code:
Alles anzeigen
aktuell versuche ich meiner TableView beizubringen das sie die bereits erzeugten Zellen bei einem refreshData wiederverwenden soll und ggf. neue hinzufügt wenn nötig. Ich wollte also die Funktion viewWithTag() verwenden um genau das zu erreichen jedoch will das nicht so recht klappen.
Das Problem das ich nämlich habe ist das meine TableView bei jedem refreshData() immer neue Zellen zu den aktuell bestehenden hinzufügt weshalb ich dann immer die Fehlermeldung "Index is out of range" bekomme.
Kann mir einer von euch vielleicht sagen was das Problem ist und was ich falsch mache ?
Hier der Code:
Quellcode
- for (questionIndex, data) in zip(0..<userData.userQuestions.count, questionData) {
- let questionImageView: UIImageView = UIImageView(image:nil)
- let index = questionIndex
- questionImageView.tag = index
- //Code zu Erstellung der Maske
- let overlay: UIView = UIView(frame: CGRect(x: 0, y: 200, width: cell.homeScrollView.frame.size.width/2 + 20, height: cell.homeScrollView.frame.size.height/4))
- overlay.backgroundColor = UIColor.black.withAlphaComponent(0.3)
- let questionLabel = UILabel(frame: CGRect(x: 0, y: 0, width: cell.homeScrollView.frame.size.width/2 , height: cell.homeScrollView.frame.size.height/4))
- questionLabel.text = data.questionTitle
- questionLabel.textColor = .white
- questionLabel.font = UIFont.boldSystemFont(ofSize: 14.0)
- questionLabel.center = overlay.center
- if let theQuestion = self.view.viewWithTag(questionImageView.tag) as? UIImageView {
- print(theQuestion)
- } else {
- questionImageView.addSubview(overlay)
- questionImageView.addSubview(questionLabel)
- cell.homeScrollView.addSubview(questionImageView)
- }
- }
- tableView.tableFooterView = UIView(frame: CGRect.zero)
- return cell
- }