Hallo,
aktuell arbeite ich an einer CollectionView die ich auch bereits erfolgreich erstellt habe. Ich möchte nun die Anzahl der Zellen innerhalb der CollectionView über die Funktion numberOfItemsInSection verändern.
An sich also keine große Sache doch jetzt kommt der Punkt an dem ich scheitere. Meine CollectionView befindet sich in einer TableViewCell und ich rufe die CollectionView Funktionen über eine Extension in meiner TableViewCell auf.
Aktuell werden so wie ihr seht, 12 Zellen angezeigt. Da die Zahl der Zellen innerhalb der CollectionViews jedoch variieren kann, will ich auf eine Funktion bzw. auf eine Variable in meinem TableViewController zugreifen. Ich weiß jedoch nicht wie...
Wenn mein TableViewController aufgerufen wird, dann wird die Funktion setQuestionData() ausgeführt und items mit Inhalt gefüllt. Am liebsten würde ich also auf meine Variable items zugreifen und den Inhalt über count durchzuzählen um dann die Anzahl der Zellen in der CollectionView zu bestimmen.
Ich hoffe das ganze ist für euch verständlich. Wäre echt super wenn jemand einen guten Rat für mich hat oder sogar weiß wie ich mein Problem behandeln kann
HomeTableViewCell ( Hier will ich am liebsten auf setQuestionData/items zugreifen
Alles anzeigen
Hier mein HomeTableViewController:
Alles anzeigen
aktuell arbeite ich an einer CollectionView die ich auch bereits erfolgreich erstellt habe. Ich möchte nun die Anzahl der Zellen innerhalb der CollectionView über die Funktion numberOfItemsInSection verändern.
An sich also keine große Sache doch jetzt kommt der Punkt an dem ich scheitere. Meine CollectionView befindet sich in einer TableViewCell und ich rufe die CollectionView Funktionen über eine Extension in meiner TableViewCell auf.
Aktuell werden so wie ihr seht, 12 Zellen angezeigt. Da die Zahl der Zellen innerhalb der CollectionViews jedoch variieren kann, will ich auf eine Funktion bzw. auf eine Variable in meinem TableViewController zugreifen. Ich weiß jedoch nicht wie...
Wenn mein TableViewController aufgerufen wird, dann wird die Funktion setQuestionData() ausgeführt und items mit Inhalt gefüllt. Am liebsten würde ich also auf meine Variable items zugreifen und den Inhalt über count durchzuzählen um dann die Anzahl der Zellen in der CollectionView zu bestimmen.
Ich hoffe das ganze ist für euch verständlich. Wäre echt super wenn jemand einen guten Rat für mich hat oder sogar weiß wie ich mein Problem behandeln kann
HomeTableViewCell ( Hier will ich am liebsten auf setQuestionData/items zugreifen
Quellcode
- class HomeTableViewCell: UITableViewCell {
- @IBOutlet var cellLabel: UILabel!
- @IBOutlet var imageV: UIImageView!
- }
- extension HomeTableViewCell: UICollectionViewDataSource, UICollectionViewDelegate {
- func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
- return 12
- }
- func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
- let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "HomePhotoCell", for: indexPath) as! UICollectionViewCell
- return cell
- }
- }
- 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)
- }
- }
Hier mein HomeTableViewController:
Quellcode
- import UIKit
- import SDWebImage
- class HomeTableViewController: UITableViewController, UISearchControllerDelegate, UISearchResultsUpdating, UISearchBarDelegate {
- @IBOutlet var demoTableView: UITableView!
- var login_session = "mAbgVTuwGc71kttEAtR39QsjvEvkFF"
- var items: RootElement = RootElement()
- var savedUsers = [UserInfo]() //Array mit allen User/Question Daten
- let defaults = UserDefaults.standard
- override func viewDidLoad() {
- super.viewDidLoad()
- }
- override func viewDidAppear(_ animated: Bool) {
- setQuestionData()
- }
- //Besorgt die Daten
- func setQuestionData() {
- let baseURL = URL(string: url)!
- var request = URLRequest(url: baseURL)
- request.setValue(login_session, forHTTPHeaderField: "Authorization")
- request.httpMethod = "GET"
- let task = URLSession.shared.dataTask(with: request as URLRequest) { (data, response, error) in
- guard let data = data else { return }
- let decoder = JSONDecoder()
- self.items = (try? decoder.decode(RootElement.self, from: data)) ?? RootElement()
- self.savedUsers.append(contentsOf: self.items.data)
- print(self.savedUsers)
- DispatchQueue.main.async {
- self.demoTableView.reloadData()
- }
- }
- task.resume()
- }
- override func numberOfSections(in tableView: UITableView) -> Int {
- return 1
- }
- override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
- return savedUsers.count
- }
- override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
- guard let cell = tableView.dequeueReusableCell(withIdentifier: "QuestionLine", for: indexPath) as? HomeTableViewCell else { fatalError()}
- demoTableView.rowHeight = 335
- tableView.tableFooterView = UIView(frame: CGRect.zero)
- return cell
- }
- }
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von ThisIsBeat ()