UILabel Schriftgröße?


86

Ich kann die Schriftgröße eines UILabels nicht mit dem folgenden Code ändern:

itemTitle.font = [UIFont systemFontOfSize:25];

Wenn ich die Zahl 25 auf etwas Größeres erhöhe, scheint es nur einen oberen Rand zum Etikett hinzuzufügen, wodurch der Text so stark nach unten gedrückt wird, dass der Text unten abgeschnitten wird oder vollständig überläuft.

Ich habe ein anderes UILabel an anderer Stelle mit systemFontOfSize 25 und es ist viel kleiner als der itemTitle-Text. Was ist los? Soll 25 nicht ein absoluter Wert sein?

Ich bin so verwirrt darüber, wie man die Schriftgröße von Uilabels programmgesteuert ändert.

Antworten:


56

Stellen Sie sicher, dass die Größe Ihrer Etiketten nicht automatisch geändert wird. In IB heißt es "Autoshrink" und befindet sich direkt neben der Schriftarteinstellung. Programmatisch heißt es adjustsFontSizeToFitWidth.


176

Ich habe das UILabel durch folgenden Code geändert:

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

Versuchen Sie dies und sehen Sie, ob es in Ihrem Fall funktioniert oder nicht?


4
label.font = label.font.fontWithSize(25)für Swift
Tom Howard

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


16

Wenn Sie für Swift 3.1 und Swift 4 nur die Schriftgröße für ein Etikett ändern möchten:

let myLabel : UILabel = ...
myLabel.font = myLabel.font.withSize(25)

12

** Mit diesen Eigenschaften können Sie die Schriftgröße festlegen **

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

sehr einfache und dennoch effektive Methode, um die Größe des Etikettentextes progmatisch anzupassen: -

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

:-)


5

Das hat bei mir funktioniert

Swift 3

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

Swift 4

label.font = label.font.withSize(40.0)

1

Das hat bei mir funktioniert:

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

-Reich


1

Die obigen Antworten haben sehr geholfen.

Hier ist die Swift-Version.

@IBOutlet weak var priceLabel: UILabel!

*.... lines of code later*

self.priceLabel.font = self.priceLabel.font.fontWithSize(22)

1

In C # Auf diese Weise können Sie das Problem lösen. In UIkit sind diese Methoden verfügbar.

Label.Font = Label.Font.WithSize(5.0f);
       Or
Label.Font = UIFont.FromName("Copperplate", 10.0f);  
       Or
Label.Font = UIFont.WithSize(5.0f);

-1

Versuchen Sie, die Höhe und Breite Ihres Etikettenrahmens so zu ändern, dass Ihr Text nicht geschnitten wird.

 [label setframe:CGRect(x,y,widht,height)];
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.