So erstellen Sie ein multi-line-UILabel, mit einer maximalen Breite?

Schreibe ich eine einfache IRC-client, ich bin Modellierung nach der Twitter-iOS-app Aussehen. Ich habe ein screenshot der Twitter-app für Referenz:

So erstellen Sie ein multi-line-UILabel, mit einer maximalen Breite?

Sieht es aus wie eine einfache Tabelle anzeigen mit einem paar von Etiketten in jeder Zelle. Also, in meiner app, ich bin programmgesteuert erstellen einer Tabelle und die Zelle formatieren. Meine benutzerdefinierte Zelle hat nur zwei labels, die ich habe, positioniert eine auf der Oberseite des anderen. Das top-label ist ein einfaches 1-liner. Die Beschriftung unten " ich möchte enthalten mehr Nachrichten, und es brauchen zu Wort-auf mehrere Zeilen umgebrochen werden, während Sie im Rahmen meiner angegebenen Breite.

Wie kann ich das erreichen?

So weit, ich habe versucht, explizit festlegen des Rahmens der Bezeichnung auf den Dimensionen, die ich will, aber es keinen Zeilenumbruch, wenn das ist alles, was ich tun. Es fließt einfach aus der Zelle horizontal. Ich habe dann versucht, Sie anzurufen sizeToFit innerhalb der tableView:cellForRowAtIndexPath: Funktion, für das label, aber es scheint zu word-wrap in einer sehr kleinen Breite - der text wird automatisch umbrochen, nach so zwei oder drei Buchstaben und dann strömt aus der Zelle vertikal.

Ich kann nicht scheinen, um herauszufinden, wie man den text in die label-wrap-nach einer festgelegten Breite. Irgendwelche Ideen?

Meine benutzerdefinierte Zellen-Klasse: https://github.com/ryancole/pound-client/blob/master/pound-client/views/MessageListCell.m

Den cellForRowAtIndexPath Funktion: https://github.com/ryancole/pound-client/blob/master/pound-client/controllers/MessageListViewController.m#L62-L84

Edit 1:

Zeigen, was passiert, wenn ich numberOfLines auf 0 für unbegrenzt, ich habe die angehängten screenshots an, die aufgerufen wird. Es umschließt nach ein paar Zeichen, anstatt der ersten Einnahme bis die angegebene Breite der UILabel-Rahmen. Dies wird vor genannt sizeToFit.

So erstellen Sie ein multi-line-UILabel, mit einer maximalen Breite?

InformationsquelleAutor Ryan | 2012-12-28

Schreibe einen Kommentar