Rozmiar czcionki UILabel?

87

Nie mogę zmodyfikować rozmiaru czcionki UILabel za pomocą następującego kodu:

itemTitle.font = [UIFont systemFontOfSize:25];

Kiedy zwiększam liczbę 25 do czegoś większego, wydaje się, że dodaje to tylko górny margines do etykiety, co w konsekwencji spycha tekst tak bardzo w dół, że tekst zostaje ucięty na dole lub całkowicie przepełniony.

Mam inny UILabel w innym miejscu z systememFontOfSize 25 i jest on znacznie mniejszy niż tekst itemTitle. Co się dzieje? Czy 25 nie powinno być wartością bezwzględną?

Jestem tak zdezorientowany, jak programowo zmienić rozmiar czcionki uilabels.

Jan
źródło

Odpowiedzi:

56

Sprawdź, czy etykiety nie są ustawione na automatyczną zmianę rozmiaru. W IB nazywa się to „Autoshrink” i znajduje się tuż obok ustawienia czcionki. Programowo nazywa się adjustsFontSizeToFitWidth.

Rob Napier
źródło
176

Zmodyfikowałem UILabel za pomocą następującego kodu:

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

Spróbuj tego i zobacz, czy to działa w Twoim przypadku, czy nie ???

xtreme
źródło
4
label.font = label.font.fontWithSize(25)dla Swift
Tom Howard
Swift 3label.font = label.font.withSize(25)
Marcio Klepacz
35
[label setFont:[UIFont systemFontOfSize:9]];

to działa dla mnie.

John Paul Manoza
źródło
17

W przypadku Swift 3.1 i Swift 4 , jeśli chcesz zmienić tylko rozmiar czcionki dla etykiety:

let myLabel : UILabel = ...
myLabel.font = myLabel.font.withSize(25)
Kevin ABRIOUX
źródło
12

** Możesz ustawić rozmiar czcionki za pomocą tych właściwości **

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);
kapil
źródło
5

bardzo prosta, ale skuteczna metoda stopniowego dostosowywania rozmiaru tekstu etykiety: -

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

:-)

Madhur Sodhi
źródło
5

To zadziałało dla mnie w

Szybki 3

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

Szybki 4

label.font = label.font.withSize(40.0)
Krunal
źródło
1

To zadziałało dla mnie:

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

-bogaty

user2887097
źródło
1

Powyższe odpowiedzi bardzo pomogły.

Oto wersja Swift.

@IBOutlet weak var priceLabel: UILabel!

*.... lines of code later*

self.priceLabel.font = self.priceLabel.font.fontWithSize(22)
Christopher Wade Cantley
źródło
1

W C # Te sposoby można rozwiązać problem, w UIkit te metody są dostępne.

Label.Font = Label.Font.WithSize(5.0f);
       Or
Label.Font = UIFont.FromName("Copperplate", 10.0f);  
       Or
Label.Font = UIFont.WithSize(5.0f);
Shanu Singh
źródło
-1

Spróbuj zmienić wysokość i szerokość rozmiaru ramki etykiety, aby tekst nie był przycinany.

 [label setframe:CGRect(x,y,widht,height)];
vishiphone
źródło