2014-10-03 4 views
0

Я знаю, что есть много сообщений о UILabel, и это размер, но я не смог найти ответ на свою проблему.UILabel не настраивается в соответствии с текстом

У меня есть UILabels с текстом на 1 строке, не более и не нужно больше строк, а для текста устанавливается минимальная шкала шрифтов для настройки. В портретном режиме экран имеет достаточно места в высоте и не масштабирует мою UILabel высотой до критической точки.

В ландшафтном режиме, я короткий по высоте, а UILabel очень мал по высоте и текст разрезан сверху и снизу.

Я испытал Everyting я прочитал как:

  • множество разрывов строк в режим клип

  • Используйте adjustsFontSizeToFitWidth = YES;

В любом случае, текст подходит только по ширине но не заботятся о высоте.

Должен ли я использовать какой-то уродливый взломать, чтобы рассчитать размер шрифта в зависимости от высоты этикетки или я чего-то пропустил?

+1

разместить свой код, чтобы увидеть, если вы пропустили л –

+0

все в интерфейсе строителя, за исключением, если я пытаюсь добавить adjustsFontSizeToFitWidth строку с помощью кода. Я не могу показать вам какой-либо код. Если вы хотите воспроизвести его, создайте новый проект, поместите в него uilabel с большим размером шрифта с минимальной шкалой 0,1 и сделайте высоту apect ration примерно как 5 или 10% высоты экрана. После этого немного поиграйте с поворотом экрана, и у вас будет такая же проблема. – Kamax

ответ

0
CGRect labelFrame = CGRectMake(22, 50, 280, 150); 
UILabel *myLabel = [[UILabel alloc] initWithFrame:labelFrame]; 
[myLabel setText:finalRecipe]; 
[myLabel setBackgroundColor: [UIColor lightGrayColor]]; 
[myLabel setNumberOfLines:0]; 

CGFloat fontSize = 0.0f; 
labelFrame.size = [myLabel.text sizeWithFont:myLabel.font 
          minFontSize:myLabel.minimumFontSize 
         actualFontSize:&fontSize 
           forWidth:labelFrame.width 
         lineBreakMode:myLabel.lineBreakMode]; 

myLabel.frame = labelFrame; 
[self.view addSubview:myLabel]; 
Смежные вопросы