• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Dynamische Zellenhöhe

SpecialFighter

James Grieve
Registriert
25.04.12
Beiträge
132
Hallo alle zusammen,

schaut euch bitte Mal folgenden Screen an:
Bildschirmfoto 2015-08-19 um 12.00.12.png

Das ist der Aufbau einer Zelle in meinem Tableview
Ich möchte diese gerne so beibehalten.
- Erste Zeile: Text
- zweite Zeile: ein Label mit Text

Problem:
die erste Zeile ist normalerweise immer nur ein 1 Zeiler, muss aber bei längerem Text ein Zweizeiler werden, da dieser sonst abgeschnitten wird.
Wie stelle ich das dynamisch an, dass je nach Textlänge ein Einzeiller bzw ein Zweizeiller draus gemacht wird und dem entsprechend die Zelle von der Höhe angepasst wird und das Label aus Zeile 2 nach unten rutscht?

Arbeite mit iOS 8 Swift
 
Immer einen Zweizeiler lassen ist keine Lösung? Dann hätte die Tabelle ein einheitliches Design (immer gleiche Höhe einer Zelle).

Ansonsten zwei Prototypes erstellen und dann Anzahl der Chars (Textlänge) überprüfen. Ist der Text z.B. kleiner als 50 Zeichen dann benutzt du Prototype 1 ansonsten Prototype 2.
 
Zuletzt bearbeitet:
numberOfLines macht genau das, was du willst.
Im Storyboard beim Label einfach lines auf 2 setzen. Fertig.

Edit: Zumindest was die Sache mit dem Label angeht :)
Zur automatischen Größenanpassung der Tabellenzeile möchte ich mich nicht äußern.
 
Zuletzt bearbeitet:
Wenn du eine Custom Cell benutzt, dann sollte sich die Höhe der Zelle, sofern du die beiden Labels mit Constraints gesetzt hast, automatisch anpassen. Also du nimmst einfach den Label und erstellst Constraints für den Abstand in alle 4 Richtungen. Und da der Label durch numberOfLines 2 dynamisch ist, also entweder eine Zeile oder 2, passt sich die ganze Zelle an. Das sollte denke ich dein Problem lösen.