UILabel ukuran font?

87

Sepertinya saya tidak bisa mengubah ukuran font UILabel dengan kode berikut:

itemTitle.font = [UIFont systemFontOfSize:25];

Saat saya meningkatkan angka 25 menjadi sesuatu yang lebih besar, tampaknya hanya menambahkan margin atas ke label, yang akibatnya mendorong teks begitu banyak, sehingga teks terpotong di bagian bawah atau meluap sepenuhnya.

saya memiliki UILabel lain di tempat lain dengan systemFontOfSize 25, dan itu jauh lebih kecil daripada teks itemTitle. Apa yang sedang terjadi? Bukankah 25 seharusnya menjadi nilai absolut?

saya sangat bingung tentang cara mengubah ukuran font uilabels secara terprogram.

John
sumber

Jawaban:

56

Pastikan label Anda tidak disetel untuk mengubah ukuran secara otomatis. Di IB, ini disebut "Autoshrink" dan berada tepat di samping pengaturan font. Secara terprogram, ini disebut adjustsFontSizeToFitWidth.

Rob Napier
sumber
179

Saya telah mengubah UILabel dengan kode berikut:

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

Coba ini dan lihat apakah itu berfungsi dalam kasus Anda atau tidak ???

xtreme.dll
sumber
5
label.font = label.font.fontWithSize(25)untuk Swift
Tom Howard
Swift 3label.font = label.font.withSize(25)
Marcio Klepacz
35
[label setFont:[UIFont systemFontOfSize:9]];

ini berhasil untuk saya.

John Paul Manoza
sumber
19

Untuk Swift 3.1 dan Swift 4 , jika Anda hanya ingin mengubah ukuran font untuk label:

let myLabel : UILabel = ...
myLabel.font = myLabel.font.withSize(25)
Kevin ABRIOUX
sumber
12

** Anda dapat mengatur ukuran font dengan properti ini **

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
sumber
5

metode yang sangat sederhana, namun efektif untuk menyesuaikan ukuran teks label secara progmatis: -

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

:-)

Madhur Sodhi
sumber
5

Ini berhasil bagi saya di

Cepat 3

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

Cepat 4

label.font = label.font.withSize(40.0)
Krunal
sumber
1

Ini berhasil untuk saya:

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

-kaya

pengguna2887097
sumber
1

Jawaban di atas sangat membantu.

Ini adalah versi Swiftnya.

@IBOutlet weak var priceLabel: UILabel!

*.... lines of code later*

self.priceLabel.font = self.priceLabel.font.fontWithSize(22)
Christopher Wade Cantley
sumber
1

Di C # Cara-cara ini Anda dapat Memecahkan masalah, Di UIkit metode ini tersedia.

Label.Font = Label.Font.WithSize(5.0f);
       Or
Label.Font = UIFont.FromName("Copperplate", 10.0f);  
       Or
Label.Font = UIFont.WithSize(5.0f);
Shanu Singh
sumber
-1

Cobalah untuk mengubah tinggi dan lebar ukuran bingkai label Anda agar teks Anda tidak terpotong.

 [label setframe:CGRect(x,y,widht,height)];
vishiphone
sumber