UILabel: adjustsFontSizeToFitWidth in Kombination mit numberOfLines
September 9th, 2009 iPhone Dev
UILabel hat die fantastische Eigenschaft adjustsFontSizeToFitWidth. Ist adjustsFontSizeToFitWidth = YES, wird die Schriftgröße des Textes eines UILabels so angepasst, dass die Textlänge der Breite des UILabels entspricht. Das ganze funktioniert leider nur unter einer Bedingung: Die Eigenschaft numberOfLines darf nicht größer 1 sein. Sprich bei Multiline UILabels funktioniert adjustsFontSizeToFitWidth nicht.
Ich habe nun eine kleine Erweiterung für UILabel geschrieben um auch bei Multiline UILabels die Schriftgröße akkurat zu justieren:
Download UILabelMultilineFontAdjustment.zip
Beispiel 1:
//Header für Erweiterung von UILabel einbinden #import "UILabel+MultilineFontAdjustment.h" @implementation TestClass - (void) testMethod { UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0.0, 0.0, 130.0, 30.0)]; label.text = @"Das ist ein Text, dessen Schriftgröße angepasst werden soll!"; label.numberOfLines = 2; //Schriftgröße anpassen: [label adjustMultilineFontsize]; //... } @end
Beispiel 2:
Mit Angabe von maximaler und minimaler Schriftgröße
//Header für Erweiterung von UILabel einbinden #import "UILabel+MultilineFontAdjustment.h" @implementation TestClass - (void) testMethod { UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0.0, 0.0, 130.0, 30.0)]; label.text = @"Das ist ein Text, dessen Schriftgröße angepasst werden soll!"; label.numberOfLines = 2; //Schriftgröße anpassen zwischen einer Größe von 20.0f und 12.0f [label adjustMultilineFontsize:20.0 minimum:12.0]; //... } @end
1 Kommentar
Sehr geil! Danke
Dein Feedback ist gefragt!