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.

John
quelle

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.

Rob Napier
quelle
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?

extrem
quelle
4
label.font = label.font.fontWithSize(25)für Swift
Tom Howard
Swift 3label.font = label.font.withSize(25)
Marcio Klepacz
34
[label setFont:[UIFont systemFontOfSize:9]];

das funktioniert bei mir.

John Paul Manoza
quelle
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)
Kevin ABRIOUX
quelle
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);
kapil
quelle
5

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

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

:-)

Madhur Sodhi
quelle
5

Das hat bei mir funktioniert

Swift 3

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

Swift 4

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

Das hat bei mir funktioniert:

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

-Reich

user2887097
quelle
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)
Christopher Wade Cantley
quelle
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);
Shanu Singh
quelle
-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)];
Vishiphone
quelle