UILabel: adjustsFontSizeToFitWidth in Kombination mit numberOfLines

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


Dein Feedback ist gefragt:

  • Name (*)
  • Email (*)
  • Website
  • Nachricht:
 

About

Mein Name ist Dominic. Ich bin als freiberuflicher Software-Entwickler für Desktop, Mobil- und Web-Applikationen, sowie in den Bereichen Web-Design und Online Marketing tätig. Außerdem bin ich Mitinhaber einer Firma, die sich auf Softwareentwicklung für den Office-Bereich spezialisiert hat!

Blog

Support

Für Fragen und Feedback zu von mir entwickelter Software sowie für Support-Anfragen kannst du das Formular auf meiner Kontakt-Seite nutzen. Alternativ kannst du auch eine e-Mail mit deinem Anliegen an schicken.

Ich bin stets bemüht alle Anfragen so schnell wie möglich zu beantworten!

Twitter @d0mzilla