Размер шрифта UILabel?

87

Кажется, я не могу изменить размер шрифта UILabel с помощью следующего кода:

itemTitle.font = [UIFont systemFontOfSize:25];

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

У меня есть еще один UILabel в другом месте с systemFontOfSize 25, и он намного меньше, чем текст itemTitle. В чем дело? Разве 25 не должно быть абсолютной величиной?

я так запутался в том, как программно изменить размер шрифта uilabels.

Джон
источник

Ответы:

56

Убедитесь, что ваши метки не настроены на автоматическое изменение размера. В IB это называется «Автоматическое сжатие» и находится рядом с настройкой шрифта. Программно это называется adjustsFontSizeToFitWidth.

Роб Напье
источник
176

Я изменил UILabel следующим кодом:

label.font=[label.font fontWithSize:25];

Попробуйте это и посмотрите, работает ли это в вашем случае или нет ???

экстремальный
источник
4
label.font = label.font.fontWithSize(25)за Swift
Tom Howard
Swift 3label.font = label.font.withSize(25)
Marcio Klepacz 09
35
[label setFont:[UIFont systemFontOfSize:9]];

это работает для меня.

Джон Пол Маноза
источник
17

Для Swift 3.1 и Swift 4 , если вы хотите изменить только размер шрифта для метки:

let myLabel : UILabel = ...
myLabel.font = myLabel.font.withSize(25)
Кевин АБРИОУКС
источник
12

** Вы можете установить размер шрифта с помощью этих свойств **

timedisplayLabel= [[UILabel alloc]initWithFrame:CGRectMake(70, 194, 180, 60)];

[timedisplayLabel setTextAlignment:NSTextAlignmentLeft];

[timedisplayLabel setBackgroundColor:[UIColor clearColor]];

[timedisplayLabel setAdjustsFontSizeToFitWidth:YES];

[timedisplayLabel setTextColor:[UIColor blackColor]];

[timedisplayLabel setUserInteractionEnabled:NO];

[timedisplayLabel setFont:[UIFont fontWithName:@"digital-7" size:60]];

timedisplayLabel.layer.shadowColor =[[UIColor whiteColor ]CGColor ];

timedisplayLabel.layer.shadowOffset=(CGSizeMake(0, 0));

timedisplayLabel.layer.shadowOpacity=1;

timedisplayLabel.layer.shadowRadius=3.0;

timedisplayLabel.layer.masksToBounds=NO;

timedisplayLabel.shadowColor=[UIColor darkGrayColor];

timedisplayLabel.shadowOffset=CGSizeMake(0, 2);
капил
источник
5

очень простой, но эффективный метод программной корректировки размера текста метки: -

label.font=[UIFont fontWithName:@"Chalkduster" size:36];

:-)

Мадхур Содхи
источник
5

Это сработало для меня в

Swift 3

label.font = label.font.fontWithSize(40.0)

Swift 4

label.font = label.font.withSize(40.0)
Крунал
источник
1

Это сработало для меня:

sequencerPlayLabel.font = [UIFont fontWithName:kTypeFont size:kTypeFontSize];

-богатый

user2887097
источник
1

Ответы выше очень помогли.

Вот версия Swift.

@IBOutlet weak var priceLabel: UILabel!

*.... lines of code later*

self.priceLabel.font = self.priceLabel.font.fontWithSize(22)
Кристофер Уэйд Кэнтли
источник
1

В C # Эти способы решения проблемы. В UIkit доступны эти методы.

Label.Font = Label.Font.WithSize(5.0f);
       Or
Label.Font = UIFont.FromName("Copperplate", 10.0f);  
       Or
Label.Font = UIFont.WithSize(5.0f);
Шану Сингх
источник
-1

Попробуйте изменить высоту и ширину рамки этикетки, чтобы текст не обрезался.

 [label setframe:CGRect(x,y,widht,height)];
вишифон
источник