ขนาดตัวอักษร UILabel?


87

ฉันไม่สามารถแก้ไขขนาดตัวอักษรของ UILabel ด้วยรหัสต่อไปนี้:

itemTitle.font = [UIFont systemFontOfSize:25];

เมื่อฉันเพิ่มจำนวน 25 เป็นค่าที่มากกว่าดูเหมือนว่าจะเพิ่มขอบด้านบนให้กับป้ายกำกับเท่านั้นซึ่งส่งผลให้ข้อความลดลงมากจนข้อความถูกตัดออกที่ด้านล่างหรือล้นออกทั้งหมด

ฉันมี UILabel อื่นที่มี systemFontOfSize 25 และมีขนาดเล็กกว่าข้อความ itemTitle มาก เกิดอะไรขึ้น? 25 ไม่ควรเป็นค่าสัมบูรณ์หรือ?

ฉันสับสนมากเกี่ยวกับวิธีการเปลี่ยนขนาดตัวอักษรของ uilabels โดยทางโปรแกรม

คำตอบ:


56

ตรวจสอบว่าไม่ได้ตั้งค่าป้ายกำกับให้ปรับขนาดโดยอัตโนมัติ ใน IB เรียกว่า "Autoshrink" และอยู่ข้างการตั้งค่าแบบอักษร adjustsFontSizeToFitWidthโปรแกรมก็เรียกว่า


179

ฉันได้แก้ไข UILabel ตามรหัสต่อไปนี้:

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

ลองดูว่ามันใช้ได้ในกรณีของคุณหรือไม่ ???


5
label.font = label.font.fontWithSize(25)สำหรับ Swift
Tom Howard

Swift 3label.font = label.font.withSize(25)
Marcio Klepacz


19

สำหรับ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

วิธีที่ง่ายมาก แต่มีประสิทธิภาพในการปรับขนาดของข้อความฉลากแบบ progmatically: -

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

:-)




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)];
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.