2016-06-22 10 views
0

Ich bin gerade dabei, eine Anwendung in Swift zu entwickeln, die Daten in einer Tabelle speichert. Im Moment habe ich ein Problem mit dem Untertitel-Text unter dem Haupttext. Wenn ich unter "Lizenznummer" mehrere Untertitelzeilen hinzufügen möchte, wird auf das Bild verwiesen. I. Ich habe alles bereit zu gehen, aber nicht sicher, wie man es sichtbar macht. Jede mögliche Hilfe würdeSo fügen Sie mehrere Zeilen in UITableViewCell hinzu

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{ 
    let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Value2, reuseIdentifier: "Nil") 

    cell.textLabel!.text = LrnLog.logs[indexPath.row].name //Trip Date- The data is used for the name 
    cell.detailTextLabel!.text = LrnLog.logs[indexPath.row].desc //Trip Name 
    cell.detailTextLabel!.text = LrnLog.logs[indexPath.row].rego //Vehicle Rego 
    cell.detailTextLabel!.text = LrnLog.logs[indexPath.row].licnum //License Number 

    return cell 
} 

Image 2 is what my app is looking like

+1

Bitte geben Sie Ihren Code hier als Text ein, nicht als Screenshot, danke. Versuchen Sie auch, Zeile 'cell.detailTextLabel! .numberOfLines = 0' –

+0

Geben Sie Ihren Code hier, nicht in Screenshot bitte. –

Antwort

1

Sie sollten die text gleichzeitig in einem Kontrollfluss (oder innerhalb eines Codeblocks) zuweisen. Sie können nicht sofort verschiedene Texte derselben Eigenschaft neu zuweisen. Wenn Sie das tun, wird der Compiler den letzten nicht alle berücksichtigen. So Ihre Frage zu beantworten versuchen, diese in Ihrem cellForRowAtIndexPath:

cell.detailTextLabel!.numberOfLines = 0 
cell.textLabel!.text = LrnLog.logs[indexPath.row].name 
cell.detailTextLabel!.text = "\(LrnLog.logs[indexPath.row].desc)\n\(LrnLog.logs[indexPath.row].rego)\n\(LrnLog.logs[indexPath.row].licnum)" 

Unter der Annahme, dass keine der oben genannten Attribute in LrnLog.logs[indexPath.row] ist nil sonst wird es zum Absturz bringen. Überprüfen Sie besser auf nil und weisen Sie dann die Werte zu. Außerdem müssen Sie die Größe der Zellen anpassen, wenn Ihre Untertitelzeilen hoch werden.

+0

Ich habe den Code implementiert. Aber ich habe ein Problem mit der Zuordnung des Textes. Wie würde ich es beheben? Das Bild ist unten. http://i.imgur.com/ZLDBDOc.png?1 – Nathan

+0

Wie ich bereits sagte, "Auch müssen Sie die Größe der Zellen anpassen, wie Ihre Untertitelzeilen hoch gehen" – Santosh

+0

Sorry, aber entschuldigen Sie meinen Mangel an Wissen aber wie könnte ich das tun? – Nathan

1

geschätzt werden Sie ändern den Text des Etiketts 3-mal, nicht tatsächlich verschiedene Etiketten ändern.

Sie können entweder alle diese Strings zusammenfügen und sie in einer Zeile haben ODER Sie müssen 3 separate Etiketten in Ihre Zelle setzen. Wenn Sie dem Kommentar zu Ihrer Frage folgen, können Sie auch die Anzahl der Zeilen auf 0 setzen. Sie müssen dies jedoch zu einer Zeichenfolge kombinieren. Außerdem gehe ich davon aus, dass Sie Daten auch rechts neben diese Informationen stellen möchten. In diesem Fall ist eine benutzerdefinierte Zelle die beste Option.

Wenn Sie sich entscheiden, eine benutzerdefinierte Zelle zu erstellen, möchten Sie auch eine benutzerdefinierte TableViewCell-Klasse für Ihre Zelle erstellen, und Sie würden alle Ihre Ausgänge dorthin ziehen.

+0

Es tut mir leid, aber wie kann ich 3 separate Etiketten in der Zelle hinzufügen? Idealerweise möchte ich alle Daten untereinander haben. Ich will es nicht in einer Zeile ... – Nathan

+0

Das habe ich angenommen. Klicken Sie in Ihre Tabellenzeile. Sie können also tatsächlich auf die rechte Seite der Fenster gehen und zum Attribut-Inspektor gehen. Dort sehen Sie ein Element mit dem Namen "Stil": Sie möchten "Benutzerdefiniert" auswählen. Dadurch wird die Zelle vollständig geleert und Sie können Ihre eigenen Beschriftungen auf die Zelle ziehen. Um diese zu verwenden, müssen Sie eine TableViewCell-Unterklasse erstellen und sie so benennen, wie Sie Ihre Zelle aufrufen möchten. Ich denke, dieses Video wird ehrlich deine beste Hilfe sein. https://www.youtube.com/watch?v=EVJiprvRLoo – Dallas

+0

Viel Glück! Es klingt wirklich kompliziert, aber es ist nicht so schlimm, wenn du erst einmal darauf gestoßen bist, und das wirst du sehr oft tun müssen, damit es nicht schaden kann, es zu lernen :) Wenn meine Antwort dir geholfen hat, dann bitte ' Vergessen Sie nicht, es als ausgewählte Antwort zu markieren. – Dallas