UILabel unterstützt die automatische Schriftgrößenanpassung von Haus aus. Allerdings nur bei einzeiligen Texten. Mit folgender Funktion wird die Schriftgröße an das übergebene Label angepasst:
- (void)sizeFontForLabel:(UILabel *)label {
for(int i = 28; i > 10; i = i-2)
{
label.font = [UIFont fontWithName:label.font.fontName size:i];
CGSize constraintSize = CGSizeMake(label.frame.size.width, MAXFLOAT);
CGSize labelSize = [label.text sizeWithFont:label.font constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
if(labelSize.height <= label.frame.size.height) break;
}
}