Einige benutzerdefinierte Schriftarten, die ich in meine App geladen habe, werden abgeschnitten, wenn sie in einem UILabel angezeigt werden. Ich habe mehrere benutzerdefinierte Schriftarten, die ich richtig anzeigen muss. Wie kann ich das beheben?UILabel schneidet benutzerdefinierte Schrift ab. Wie kann ich die Höhe von UILabel anhand der ausgewählten benutzerdefinierten Schrift dynamisch anpassen?
Antwort
Wie gesagt, ich hatte ein sehr nerviges Problem, wo benutzerdefinierte Schriftarten in einem UILabel wegen etwas abgeschnitten werden würde. Ich fand später heraus, dass es wegen ascenders and descenders (Schriftarteigenschaften) war.
Nach vielen Suchen fand ich eine solution, die Sie benötigt, um ein Programm herunterzuladen, passen Sie die Oberlänge und Unterlänge der Schriftart mit Terminal und dann testen Sie es auf Ihrer App, bis es perfekt ist.
wäre dieser in Ordnung, wenn ich nicht für diese 20+ Fonts zu tun hatte. Also beschloss ich, herumzugrabeln und zu sehen, ob ich auf die Ober- und Unterlängenwerte einer Schrift zugreifen konnte. Stellt sich heraus, UIFont hat diese genauen Attribute!
Mit dieser Information konnte ich UILabel ableiten und seinen Rahmen dynamisch anpassen, indem ich die Ober- und Unterlängenwerte (verwenden Sie den absoluten Wert, da er negativ ist) zu seiner Höhe hinzufügt.
Hier ist ein Ausschnitt aus dem Implementierungscode unter der letzten Zeile ist die Geldlinie:
UIFont *font = [UIFont fontWithName:nameOfFontUsed size:44.0];
NSDictionary *attrsDict = [NSDictionary dictionaryWithObject:font forKey:NSFontAttributeName];
NSMutableAttributedString *theString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@", enteredString] attributes:attrsDict];
//Add other attributes you desire
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineBreakMode = NSLineBreakByCharWrapping;
paragraphStyle.lineHeightMultiple = 5.0;
[theString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [theString length])];
[self setAttributedText:theString];
[self sizeToFit];
[self setFrame:CGRectMake(self.frame.origin.x, self.frame.origin.y, self.frame.size.width, self.frame.size.height+font.ascender+ABS(font.descender))];
Try intrinsicContentSize Eigenschaft in UILabel außer Kraft zu setzen.
Ich glaube nicht, das ist die beste Praxis ist, aber leicht Problem in einigen Fällen zu lösen.
Beispiel für Swift 3
class ExpandedLabel: UILabel {
override var intrinsicContentSize: CGSize {
let size = super.intrinsicContentSize
// you can change 'addedHeight' into any value you want.
let addedHeight = font.pointSize * 0.3
return CGSize(width: size.width, height: size.height + addedHeight)
}
}
- 1. Wie kann ich die Höhe eines UILabel anhand einer gewünschten Breite und Schrift finden?
- 2. Größe der Höhe von UILabel anpassen, um Text zu passen
- 3. sizeToFit schneidet einige UILabel-Schriftarten ab Höhe und Breite, aber nicht andere --- Gibt es eine Korrektur?
- 4. AutoLayout dynamisch Größe UILabel Höhe und Breite
- 5. Rahmen Schrift erfordert Größe, die sizeToFit() Swift
- 6. iOS benutzerdefinierte Schrift Glyph Abstand Problem
- 7. Wie bekomme ich genau die Höhe von UILabel mit Zeilenabstand?
- 8. Wie erhalte ich die Zeichengröße einer Schrift?
- 9. Passen Sie Höhe von UILabel dynamisch mit iOS Storyboard an
- 10. Wie kann ich UILabel in einer benutzerdefinierten Tabellenansichtszelle abrufen?
- 11. Wie kann ich benutzerdefinierte Schrift in UINavigationBar festlegen?
- 12. UILabel Höhe Animation mit Autolayout
- 13. Clipping von UILabel beim Anpassen vonFontSizeToFitWidth
- 14. wie kann ich die Größe der Schrift in PHP
- 15. UILabel font: fett und kursiv
- 16. Höhe UILabel auf 0 setzen
- 17. UILabel ändert nicht die Höhe auf setFrame
- 18. Qt- Benutzerdefinierte Schrift von Ressource hinzufügen
- 19. Benutzerdefinierte Schrift mit Größenklassen in iOS
- 20. Warum Schrift-Icons haben zusätzliche Höhe?
- 21. Wie kann ich die Höhe einer UIView dynamisch anpassen, wenn eine Mitgliedsstapelansicht nicht mehr angezeigt wird?
- 22. Multiline UILabel mit adjustFontSizeToFitWidth
- 23. UIView mit dynamischer Höhe multiple UILabel
- 24. Make Schrift tatsächlich Höhe in Pixeln übereinstimmen
- 25. Wie bekomme ich die Höhe eines UILabel in Swift?
- 26. Get UILabel Schriftgröße nach minimumFontSize
- 27. Dynamische UILabel Höhe in UIScrollView mit Autolayout
- 28. Kann nicht die Höhe eines UILabel mit numberOfLines = 0
- 29. Wie UILabel Text in die vertikale Mitte der Box
- 30. Mehrere Attribute (Verschiedene Textgrößen, Schrift und Offset) für UILabel Text in Objective C
Ich verstehe Sie die UILabel subclassed. Welche Methode hast du außer Kraft gesetzt und den obigen Code eingegeben? – mixtly87
Mein Tag gerettet! Vielen Dank. –