swift 3 UITableView
Ich bin ein Neuling.
Aber ich verstehe nicht, warum die UITableView war nicht alle Elemente Lasten (10-element in array).
Mit Xcode7 funktioniert, aber mit Xcode8 Swift (3).
Ich schrieb den code, aber ohne Erfolg: ein element wird geladen ...
Dies ist der code, der in der UIViewController (mit Erweiterung UITableViewDelegate, UITableViewDataSource)
CODE:
//MARK: UITableView
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return commentArray.count
}
//cell height
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
return true
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = mytableView.dequeueReusableCell(withIdentifier: "CellComment", for: indexPath ) as! commentCell
//connect objects with our information from arrays
cell.usernameBtn.setTitle(usernameArray[indexPath.row], for: UIControlState.normal)
cell.usernameBtn.sizeToFit()
cell.commentLbl.text = commentArray[indexPath.row]
return cell
}
Ich denke, das problem ist in der cellForRowAt....
Ich habe auch den folgenden Fehler:
BFTask
gefangen eine Ausnahme in der Fortsetzung block. Dieses Verhalten ist abzulehnen, und wird in einer zukünftigen Version entfernt. Caught Exception: Ungültiger index-Pfad für die Verwendung mit UITableView. Index-Pfade übergeben, um die Tabelle anzeigen müssen enthalten genau zwei Indizes angeben, den Abschnitt und Zeile. Bitte verwenden Sie die Kategorie auf NSIndexPath in UITableView.h wenn möglich.
Verstehe ich nicht.
Hat jemand eine Idee?
Danke
- func tableView(_ tableView: UITableView, cellForRowAtIndexPath indexPath: IndexPath) -> UITableViewCell { } Ersetzen Sie diese Methode mit diesem ein, und überprüfen Sie es
- Nein, die OP ist die richtige Methode, für Swift 3.
- Hast du tableView hinzufügen.estimatedRowHeight = 40? Und haben Sie Datenquelle festlegen? tableView.dataSource = self?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie mit folgenden Linien innerhalb CellForRowAt IndexPath:
mytableView
mittableView
. Es gibt keine Notwendigkeit, diecellIdentifier
konstant.Ändern mytableView zu tableView innen cellForRowAt indexPath delegate-Methode sollte das Problem beheben.
Kann es einige Probleme in Ihrem code. Versuchen Sie auflösen/überprüfen Sie die folgenden möglichen Fehler :
Entsprechend Ihrer Fehler könnte das problem in der subscripting Ihres arrays. Versuchen Sie dies:
usernameArray[indexPath.section][indexPath.Zeile]
Und auch die Delegierten:
entfernen estimatedHeightForRowAt und fügen Sie den folgenden code in die viewDidLoad () - Funktion
tableView?.estimatedRowHeight = 135 //Dieser Wert sollte in der Nähe Ihrer Zelle Höhe.
tableView.rowHeight = UITableViewAutomaticDimension
könnten Sie nicht festgelegt haben sich die Delegierten für tableViewDataSource und tableViewDelegate. Setzen Sie den Delegierten aus dem storyboard oder in viewDidLoad() Methode.