Stellen Sie sich ein UILabel vor, das 200 Pixel breit und 50 Pixel hoch ist. Das Etikett enthält Text und das Etikett verkleinert den Text, sodass er in das Etikett passt. Aber wie würden Sie nun die Größe des UIFont erhalten, wie es auf dem Etikett sichtbar ist? Stellen wir uns vor, die Schriftgröße wurde mit riesigen 100 angegeben, und die Beschriftung wird auf 15 komprimiert. Und dann möchten Sie einige andere Beschriftungen mit wenig Text erstellen, die dieselbe Schriftgröße haben. Gibt es eine Möglichkeit, die Schriftgröße des UIFonts zu erhalten, nachdem es vom Label gedrückt wurde?Wie berechnet man die Größe eines UIFont, wenn der Text im Etikett auf die Breite beschränkt ist?
6
A
Antwort
15
Wenn Sie die Größe des UILabel und der breakMode passieren, usw. zu:
CGSize size = [label.text sizeWithFont:label.font minFontSize:10 actualFontSize:&actualFontSize forWidth:200 lineBreakMode:UILineBreakModeTailTruncation];
actualFontSize sollte das sein, was Sie suchen.
UPDATE:
Die oben ist veraltet. Das Verfahren jetzt zu verwenden ist:
- (CGRect)textRectForBounds:(CGRect)bounds
limitedToNumberOfLines:(NSInteger)numberOfLines
Hier ist ein Beispiel
CGSize size = [label textRectForBounds:label.bounds
limitedToNumberOfLines:1].size;
Verwandte Themen
- 1. Wie berechnet man die Größe eines Stücks Text in Win2D
- 2. Wie berechnet man die Breite eines dbEdit basierend auf fieldsize?
- 3. So berechnen Sie die Größe eines UIFont
- 4. Text im Element die Größe auf Breite basiert, für Schleife
- 5. Wie ändern Sie die Farbe eines UIFont?
- 6. Ändern nur der Größe eines UIFont auf einem UIButton
- 7. Wie berechnet man die Breite einer Zeichenkette einer bestimmten Schriftart und Schriftgröße?
- 8. Wie wird die Schriftgröße eines UILabel berechnet, wenn -adjustsFontSizeToFitWidth auf YES gesetzt ist?
- 9. Wie berechnet man die Schriftbreite?
- 10. Wie berechnet man die maximale Objektgröße, wenn die maximale Größe des Heapspeichers bekannt ist?
- 11. Wie man die Größe der Bibliotheken berechnet, die als eine Abhängigkeit im Android-Projekt hinzugefügt wird
- 12. Ist die Skalatemplate auf 64k beschränkt?
- 13. Swift berechnet die falsche Größe der Struktur
- 14. Wie berechnet man die Ausführungszeit eines Prozesses?
- 15. Wie passt man einen Text in UILabel an, wenn die Größe nicht proportional ist
- 16. Wie kann die Eltern-Div-Breite auf die kleinste Child-Breite beschränkt werden?
- 17. Wie berechnet man die Schriftgröße für einen bestimmten NSString, die genau auf die richtige Breite passt, wenn sie in einer Ansicht gezeichnet wird?
- 18. Wie berechnet man die Größe eines Objekts im Speicher mit Silverlight?
- 19. Größe ändern Etikett auf Textmenge passen - Swift
- 20. Skalierung der UIFont-Größe relativ zur Bildschirmgröße
- 21. Wie berechnet man die Zeit?
- 22. XAML- Wie legt man die Größe eines ScrollViewer dynamisch fest?
- 23. Wie erhält man die NSString-Größe, wenn NSString Emojis enthält?
- 24. Wie ändert man die Größe eines NumericVectors?
- 25. Wie man die Größe eines Arrays verdoppelt
- 26. Wie berechnet man die Größe für einen Datenbankverbindungspool?
- 27. Wie wird Größe berechnet die Größe von Strukturen
- 28. Wie kann ich die Größe eines DIV ändern, wenn der Browser die Größe ändert?
- 29. Wie man die Größe eines Radiobuttons mit Erscheinen "Knopf" steuert
- 30. Wie berechnet der Operator C++ sizeof die Größe?
So actualFontSize ein CGSize wäre, die ich auf diese Methode als Verweis übergeben? –
Ja. In C und Obj C ist eine Funktion eingeschränkt, wie sie Werte zurückgeben kann. Argumente, die Sie an eine Funktion übergeben, werden ausgewertet und ihr Wert wird vor dem Aufruf der Funktion auf den Stack geschoben. Die Funktion ruft nur diese Werte ab und kann keinen Rückgabewert an sie übergeben. Sofern nicht ein Zeiger gedrückt wird, kann die Funktion den Zeiger verwenden, um auf seine Adresse zu schreiben und sie zu modifizieren. Ich bin zu stark vereinfachend - hier ist actualFontSize einer der zurückgegebenen Werte der Funktion (Methode). – mahboudz
Dies ist in iOS7 veraltet. Gibt es einen iOS8 Ersatz? –