Ich implementiere eine IM App auf iOS. Ich fand, dass three20-Bibliothek ein TTStypedTextLabel hat, das coole Eigenschaften wie Zeigen von Bildern und URL-Links zur Verfügung stellt. Allerdings möchte ich das TTSstyledTextLabel in eine Nachrichtenblase einbetten (genau wie die SMS App, die mit dem iPhone ausgeliefert wird), wo ich das Etikett brauche, um seine Größe entsprechend der Textlänge anzupassen. Ich habe festgestellt, dass TTSstyledTextLabel seine Höhe entsprechend seiner Breite anpassen kann, aber ich weiß nicht, wie man es horizontal schrumpfen lässt, wenn der Text sehr kurz ist und nicht eine ganze Zeile ausfüllen kann. Irgendwelche Vorschläge?Wie wird die Breite von TTSstyledTextLabel angepasst?
Antwort
Ich glaube, ich habe eine etwas bessere Lösung: Ich erhalte die rootFrame des ttstyledtext und iterieren seine Geschwister die maximale Breite finden einrahmt.
Es funktioniert wie folgt:
TTStyledTextLabel* label = [[TTStyledTextLabel alloc] init];
label.text = [TTStyledText textFromXHTML:myTextToBeDisplayed];
[label sizeToFit];
CGFloat maxWidth = 0;
TTStyledFrame *f = label.text.rootFrame;
while (f) {
int w = f.x + f.width;
if (w > maxWidth) {
maxWidth = w;
}
f = f.nextFrame;
}
return CGSizeMake(maxWidth, label.height);
Was ist das Verhalten von [label sizeToFit]; In diesem Szenario ? Gibt es alles über die Bildschirmbreite aus? – user210504
Ich versuchte es, indem ich den width -Parameter in der Größe schrittweise an sizeToFit übergab und die resultierende Höhe betrachtete, um Hinweise zu geben, ob die Größe in Ordnung ist. Aber dies ist nicht eine elegante Lösung
for (int index = 100; Index < 320; index = index + 30)
{ label.width = x; if (label.height < 20) Bruch;
}
Ich habe gerade überprüft, ob diese Lösung funktioniert – user210504
Ich denke, ich habe eine etwas bessere Lösung: Ich bekomme den rootFrame des ttstyledtext und iterieren über seine Geschwister Frames, um die maximale Breite zu finden. –
- 1. Wie wird die Breite eines UILabel angepasst und an die Textgröße angepasst?
- 2. Wie wird die Fehlermeldung von OAuthAuthorizationServerProvider angepasst?
- 3. Wie wird die Breite des äußeren Elements der Breite seines Inhalts angepasst?
- 4. Kann die Breite einer UITableViewCell angepasst werden?
- 5. Wie verwenden Sie TTSstyledTextLabel?
- 6. Wie wird MPVolumeView angepasst?
- 7. Wie wird JSLint angepasst?
- 8. Wie wird die Exportbildgröße in PowerPoint mithilfe von VBA angepasst?
- 9. Wie wird die div-Breite innerhalb von Bildern/Inhalten automatisch angepasst?
- 10. Wie wird die imageSize eines UIButton angepasst?
- 11. Wie wird die Fehlerbehandlung in Smarty angepasst?
- 12. Wie wird die Trennlinie in alertController angepasst?
- 13. Wie wird die Trac-Projektliste-Seite angepasst?
- 14. Wie wird die Zeilenumbruchgrenze (maximale Zeilenlänge) angepasst?
- 15. Wie wird die Ausrichtung von UIViewControllerWrapperView (in IOS7) angepasst?
- 16. Wie wird die Größe von UITableViewCell an den Inhalt angepasst?
- 17. Wie wird die Größe von Listboxitem automatisch angepasst?
- 18. Wie wird die Seite an das Silverlight WebBrowser-Steuerelement angepasst?
- 19. Wie wird die Containerbreite automatisch angepasst, wenn die Größe des Bilds verändert wird?
- 20. Wie wird der Zeitwert angepasst?
- 21. Wie wird das Bild an die gesamte Breite und Höhe angepasst?
- 22. Wie wird die Breite des Auswahlfeldpfeils erhöht?
- 23. Inhaltsbreite wird nicht auf 100% angepasst;
- 24. Wie wird die Spaltenbreite von jqgrid NACH dem Laden der Daten angepasst?
- 25. Wie die Breite von
- 26. Wie wird die Fliesenhöhe in Geom Fliese angepasst?
- 27. Wie wird die Rahmengröße der Button-Komponente in NativeBase angepasst?
- 28. Wie wird UITABBAR IOS 5.0 angepasst?
- 29. Wie wird die JSON-Kodierungsausgabe in Go angepasst?
- 30. SplitView, wie die minimale Breite vor dem Split geändert wird
Aus Interesse, wenn ich fragen darf, was Sie für die eigentliche IM-Funktion verwenden? libpurple? – Pripyat