Hallo,
ich arbeite aktuell an einem Projekt in dem sich innerhalb einer TableView in jeder Zelle eine CollectionView befindet. Ich versuche also entsprechende Daten in die jeweils richtigen Zellen zu laden jedoch passieren dabei verwirrende Dinge.
Grundsätzlich versuche ich über meine func tableView cellForRowAt die CollectionView Zellen zu befüllen doch leider ist das erste Problem das ich schon mal habe, dass wenn ich die App starte nicht alle CollectionViewZellen von Anfang an sichtbar sind.
Es scheint als müsste ich die TableView erst auf und ab scrollen damit die Zellen erscheinen. Die CollectionViewZellen sind erst dann sichtbar wenn sie einmal aus dem Sichtbereich verschwunden sind und dann wieder eintreten. Woran liegt das ?
PS: Wenn ich cell.testCell.backgroundColor in der func collectionView cellForItemAt einbaue dann sind alle Zellen in blau sichtbar
Hier die relevanten Codes:
(TableViewController)
Alles anzeigen
(TableViewCell)
Alles anzeigen
ich arbeite aktuell an einem Projekt in dem sich innerhalb einer TableView in jeder Zelle eine CollectionView befindet. Ich versuche also entsprechende Daten in die jeweils richtigen Zellen zu laden jedoch passieren dabei verwirrende Dinge.
Grundsätzlich versuche ich über meine func tableView cellForRowAt die CollectionView Zellen zu befüllen doch leider ist das erste Problem das ich schon mal habe, dass wenn ich die App starte nicht alle CollectionViewZellen von Anfang an sichtbar sind.
Es scheint als müsste ich die TableView erst auf und ab scrollen damit die Zellen erscheinen. Die CollectionViewZellen sind erst dann sichtbar wenn sie einmal aus dem Sichtbereich verschwunden sind und dann wieder eintreten. Woran liegt das ?
PS: Wenn ich cell.testCell.backgroundColor in der func collectionView cellForItemAt einbaue dann sind alle Zellen in blau sichtbar
Hier die relevanten Codes:
(TableViewController)
Quellcode
- override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
- guard let cell = tableView.dequeueReusableCell(withIdentifier: "QuestionLine", for: indexPath) as? HomeTableViewCell else { fatalError()}
- let userData = items.data[indexPath.row]
- let questionData = userData.userQuestions
- cell.cellLabel.text = userData.userName
- let imageUrl = URL(string: allProfilePictureURL + userData.profilePicture)
- if let url = imageUrl {
- cell.imageV.sd_setImage(with: url)
- }
- 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
- cell.int = userData.userQuestions.count
- cell.testCell.backgroundColor = .blue
- tableView.tableFooterView = UIView(frame: CGRect.zero)
- return cell
- }
- }
Quellcode
- import UIKit
- import SDWebImage
- class HomeTableViewCell: UITableViewCell {
- @IBOutlet var cellLabel: UILabel!
- @IBOutlet var imageV: UIImageView!
- var int = Int()
- var testCell = UICollectionViewCell()
- }
- extension HomeTableViewCell: UICollectionViewDataSource, UICollectionViewDelegate {
- func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
- return int
- }
- func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
- testCell = collectionView.dequeueReusableCell(withReuseIdentifier: "HomePhotoCell", for: indexPath)
- return testCell
- }
- }
- extension HomeTableViewCell: UICollectionViewDelegateFlowLayout {
- func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
- let itemsPerRow:CGFloat = 2
- let hardCodedPadding:CGFloat = 5
- let itemWidth = (collectionView.bounds.width / itemsPerRow) - hardCodedPadding
- let itemHeight = collectionView.bounds.height - (2 * hardCodedPadding)
- return CGSize(width: itemWidth, height: itemHeight)
- }
- }
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von ThisIsBeat ()