Hallo,
dieses mal habe ich etwas was mich völlig verwirrt und ich glaube einen riesen Denkfehler zu haben. Also ich möchte aktuell eine Art User-Bereich erstellen der aus einer TableView besteht. In dieser TableView habe ich zwei Zellen konfiguriert. Die erste ist größer als die zweite und dient dazu das Profilbild eines Users in groß anzuzeigen. Die zweite soll sonstige Informationen des Users anzeigen, in dem Fall mehrere Fragen.
Das was ich hier gemacht habe macht nicht unbedingt Sinn, ist aber der Stand der Dinge von dem wie weit ich bisher gekommen bin. Mein Hauptproblem liegt in der cellForRow-Methode mit dem if-Statement.
Aktuell habe ich vier User in meinem Array wie ihr sehen könnt. Mein Problem mit dem if-Statement ist das ich es zwar schaffe in der ersten "großen" Zelle zwar das Profilbild von Max Mustermann anzuzeigen, in den darauffolgenden Zellen aber alle anderen User angezeigt werden obwohl nur Max Mustermanns Daten zu sehen sein sollen.
Warum das passiert ist mir auch klar und zwar durch das else-Statement welches alle anderen User mit einer anderen ID als 1 "ausließt".
Jetzt die Frage wie ich es schaffe auch in der zweiten Zelle nur die Informationen des Users mit der ID 1 anzuzeigen ?
An sich ist das ja keine große Sache, mir macht nur dir heightForRowAt-Methode einen Strich durch die Rechnung da jeder User mit einer ID von 1, als große Zelle angezeigt wird.
Die große Zelle soll jedoch nur einmal existieren...
Ich hoffe ihr versteht mein Problem und könnt mir weiterhelfen, würde mich über jeden Tipp freuen da ich hier so langsam nicht mehr weiß wo oben und unten ist haha.
Alles anzeigen
dieses mal habe ich etwas was mich völlig verwirrt und ich glaube einen riesen Denkfehler zu haben. Also ich möchte aktuell eine Art User-Bereich erstellen der aus einer TableView besteht. In dieser TableView habe ich zwei Zellen konfiguriert. Die erste ist größer als die zweite und dient dazu das Profilbild eines Users in groß anzuzeigen. Die zweite soll sonstige Informationen des Users anzeigen, in dem Fall mehrere Fragen.
Das was ich hier gemacht habe macht nicht unbedingt Sinn, ist aber der Stand der Dinge von dem wie weit ich bisher gekommen bin. Mein Hauptproblem liegt in der cellForRow-Methode mit dem if-Statement.
Aktuell habe ich vier User in meinem Array wie ihr sehen könnt. Mein Problem mit dem if-Statement ist das ich es zwar schaffe in der ersten "großen" Zelle zwar das Profilbild von Max Mustermann anzuzeigen, in den darauffolgenden Zellen aber alle anderen User angezeigt werden obwohl nur Max Mustermanns Daten zu sehen sein sollen.
Warum das passiert ist mir auch klar und zwar durch das else-Statement welches alle anderen User mit einer anderen ID als 1 "ausließt".
Jetzt die Frage wie ich es schaffe auch in der zweiten Zelle nur die Informationen des Users mit der ID 1 anzuzeigen ?
An sich ist das ja keine große Sache, mir macht nur dir heightForRowAt-Methode einen Strich durch die Rechnung da jeder User mit einer ID von 1, als große Zelle angezeigt wird.
Die große Zelle soll jedoch nur einmal existieren...
Ich hoffe ihr versteht mein Problem und könnt mir weiterhelfen, würde mich über jeden Tipp freuen da ich hier so langsam nicht mehr weiß wo oben und unten ist haha.
Quellcode
- var users: [User] = [
- User(userID: 1, profilePicture: "bild_user29Lifestyle" ,name: "Max Mustermann", question: "Was findet ihr am besten ?" ),
- User(userID: 2, profilePicture: "bild_user29Lifestyle1", name: "Da Vinci", question: "Links oder Rechts ?"),
- User(userID: 3, profilePicture: "bild_user29Lifestyle2-1", name: "Travis Scott", question: "Welches Cover ?"),
- User(userID: 1, profilePicture: "bild_user30Politik", name: "Max Mustermann", question: "Ihr entscheidet")
- ]
Quellcode
- override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
- if users[indexPath.row].userID == 1 {
- let cell = tableView.dequeueReusableCell(withIdentifier: "UserLine", for: indexPath) as! TappedImageTableViewCell
- let user = users[indexPath.row]
- let image = UIImage(named: user.profilePicture)
- cell.profileImage.image = image
- cell.profileImage.layer.cornerRadius = cell.profileImage.frame.width / 2;
- cell.profileImage.layer.borderWidth = 1
- cell.profileImage.layer.borderColor = UIColor.lightGray.cgColor
- cell.profileImage.layer.masksToBounds = true
- return cell
- } else {
- let cell = tableView.dequeueReusableCell(withIdentifier: "QuestionLine", for: indexPath) as! UserTableViewCell
- let user = users[indexPath.row]
- cell.titleLabel.text = user.question
- cell.detailLabel.text = user.name
- let image = UIImage(named: user.profilePicture)
- cell.imageV.image = image
- cell.imageV.layer.cornerRadius = cell.imageV.frame.width / 2;
- cell.imageV.layer.borderWidth = 1
- cell.imageV.layer.borderColor = UIColor.lightGray.cgColor
- cell.imageV.layer.masksToBounds = true
- return cell
- }
- }
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von ThisIsBeat ()