Одна строка:
factLabel.numberOfLines = 1;
factLabel.minimumFontSize = 8;
factLabel.adjustsFontSizeToFitWidth = YES;
Приведенный выше код отрегулирует размер шрифта вашего текста до (например) 8
, пытаясь подогнать текст внутри метки.numberOfLines = 1
является обязательным.
Несколько строк:
Для numberOfLines > 1
существует метод определения размера конечного текста через sizeSSithringSSS:... UIKit добавление методов, например:
CGSize lLabelSize = [yourText sizeWithFont:factLabel.font
forWidth:factLabel.frame.size.width
lineBreakMode:factLabel.lineBreakMode];
После этого вы можете просто изменить размер вашей этикетки, например, получив lLabelSize
(при условии, что вы измените только высоту этикетки):
factLabel.frame = CGRectMake(factLabel.frame.origin.x, factLabel.frame.origin.y, factLabel.frame.size.width, lLabelSize.height);
iOS6
Одна строка:
Начиная с iOS6, minimumFontSize
устарела.Строка
factLabel.minimumFontSize = 8.;
может быть изменена на:
factLabel.minimumScaleFactor = 8./factLabel.font.pointSize;
iOS7
Несколько строк:
Начиная с iOS7, sizeWithFont
становится устаревшим.Многострочный регистр уменьшен до:
factLabel.numberOfLines = 0;
factLabel.lineBreakMode = NSLineBreakByWordWrapping;
CGSize maximumLabelSize = CGSizeMake(factLabel.frame.size.width, CGFLOAT_MAX);
CGSize expectSize = [factLabel sizeThatFits:maximumLabelSize];
factLabel.frame = CGRectMake(factLabel.frame.origin.x, factLabel.frame.origin.y, expectSize.width, expectSize.height);