Я разрабатываю приложение для iPhone с последним SDK и XCode 4.2
Я использую этот код для выравнивания текста по вертикали, заданного ранее в UILabel. Вот код:
- (void)resizeLabel:(UILabel *)label
{
CGSize maximumLabelSize = label.frame.size;
CGSize expectedLabelSize = [label.text sizeWithFont:label.font
constrainedToSize:maximumLabelSize
lineBreakMode:label.lineBreakMode];
//adjust the label the the new height.
CGRect newFrame = label.frame;
NSLog(@"NumLines: %d, OldWidth: %f, NewWidth: %f, OldHeight: %f, newHeight: %f", label.numberOfLines, maximumLabelSize.width, expectedLabelSize.width, maximumLabelSize.height, expectedLabelSize.height);
newFrame.size.height = expectedLabelSize.height;
label.frame = newFrame;
}
Для текста: "Иглесия де ла Мерсед" Я получаю:
NumLines: 2, OldWidth: 205.000000, NewWidth: 153.000000, OldHeight: 39.000000, newHeight: 21.000000
Для текста: "Антигуо конвент де лос мердариос" Я получаю
NumLines: 2, OldWidth: 205.000000, NewWidth: 187.000000, OldHeight: 39.000000, newHeight: 42.000000
Обе настройки настроены на использование двух строк, но текст всегда отображается только в одну строку.
Почему я получаю двойную высоту, если expectedLabelSize.width
меньше maximumLabelSize.width
?