2017-09-21 1 views
0

Ich habe eine TableView, die Zellen enthält und jede Zelle sollte ein Bild, ein Label und eine nicht bearbeitbare TextView enthalten.Swift Zellinhalt nicht angezeigt

Hier ist, was es stattdessen anzeigt: https://i.stack.imgur.com/WmOn3.png Wie Sie sehen können, zeigt es eine leere Tabelle, aber mit den drei oberen Linien näher beieinander.

ViewController.swift:

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { 

let food = ["Pasta-salad", "Hamburger", "Pancakes"] 

public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
{ 
    return (food.count) 
} 
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
{ 
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCell 

    cell.foodImage.image = UIImage(named: (food[indexPath.row] + ".jpg")) 
    cell.foodLabel.text = food[indexPath.row] 
    cell.foodDescription.text = ("insert description of \(food[indexPath.row])") 

    return (cell) 
} 
override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 
} 

TableViewCell.swift

class TableViewCell: UITableViewCell { 

@IBOutlet weak var foodImage: UIImageView! 
@IBOutlet weak var foodLabel: UILabel! 
@IBOutlet weak var foodDescription: UITextView! 

override func awakeFromNib() { 
    super.awakeFromNib() 
    // Initialization code 
} 

override func setSelected(_ selected: Bool, animated: Bool) { 
    super.setSelected(selected, animated: animated) 

    // Configure the view for the selected state 
} 
} 

Main.storyboard: enter image description here

+0

fehlender Delegierter oder Datenquelle –

Antwort

1

Es ist wie die Höhe der Zelle 0.

Implementieren Sie die UITableViewDelegate Methode zur Rückgabe der Höhe jeder Zelle scheint, Sie können auch unterschiedliche Höhe zurückkehren für jeden, durch irgendeine Berechnung.

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
    return 100.0;//Choose your custom row height 
} 
+0

Ehrfürchtig es hat gearbeitet! Danke, aber die Bilder werden nicht angezeigt, es ist nur leer, wo das Bild sein sollte, weißt du, wie man es repariert? – random1234

+0

sicher, können Sie bitte bestätigen, wenn die Bilder, die Sie versuchen zu zeigen, existieren in Ihrem Projekt und sind benannt als 1.jpg, 2, jpg .... etc –

+0

Ja schau dir das Bild der Main.storyboard am unteren Rand meiner Frage, linker Teil des Bildes zeigt die Bilder – random1234

0

Sie benötigen View-Controller wie die Tableview des delegate und dataSource einzustellen.

Fügen Sie diese auf Ihre View-Controller:

override func viewDidLoad() { 
    super.viewDidLoad() 

    tableView.delegate = self 
    tableView.dataSource = self 
} 
1

Wenn Ihre Zellen Höhe fixiert haben, setzen Sie es in tableView.rowHeight.

Aber wenn Sie dynamische Höhe haben, überprüfen Sie Ihre Einschränkungen. Es ist möglich, dass Sie keine Einschränkungen bezüglich des Bodens Ihrer Zelle haben.

Überprüfen Sie auch Delegate und Datasource

tableView.delegate = self 
tableView.dataSource = self 
Verwandte Themen