iOS: Festlegen der Schriftgröße von UILabel Programmatisch

82

Ich versuche, die Schriftgröße eines UILabels festzulegen. Egal welchen Wert ich setze, die Textgröße scheint sich nicht zu ändern. Hier ist der Code, den ich verwende.

[self setTitleLabel:[[UILabel alloc] initWithFrame:CGRectMake(320.0,0.0,428.0,50.0)]];
[[self contentView] addSubview:[self titleLabel]];
UIColor *titlebg = [UIColor clearColor];
[[self titleLabel] setBackgroundColor:titlebg];
[[self titleLabel] setTextColor:[UIColor blackColor]];
[[self titleLabel] setFont:[UIFont fontWithName:@"System" size:36]];
LoneWolfPR
quelle

Antworten:

160

Versuchen Sie [UIFont systemFontOfSize:36]oder [UIFont fontWithName:@"HelveticaNeue" size:36] dh[[self titleLabel] setFont:[UIFont systemFontOfSize:36]];

JohnVanDijk
quelle
2
setFont ist in iOS 10.2
TheJeff
76

Ziel c:

[label setFont: [label.font fontWithSize: sizeYouWant]];

Schnell:

label.font = label.font.fontWithSize(sizeYouWant)

ändert nur die Schriftgröße eines UILabels.

fujianjin6471
quelle
1
Anscheinend ist setFont veraltet, alsolabel.font = // Whatever font.
Rudolf Real
@FabricioPH wie, wenn ich label.font = // whatever currently system's fontSchriftart einstellen möchte ?
Chen Li Yong
1
@ChenLiYong Ich bin nicht mehr in der iOS-Entwicklung. Möglicherweise zeigt Googeln einige relevante Ergebnisse zum Festlegen oder Abrufen der Schriftart des aktuellen Systems an. google.com/?#q=ios%20system%20font
Rudolf Real
21

Swift 3.0 / Swift 4.2 / Swift 5.0

labelName.font = labelName.font.withSize(15)
Pranit
quelle
16

Wenn Sie nach schnellem Code suchen:

var titleLabel = UILabel()
titleLabel.font = UIFont(name: "HelveticaNeue-UltraLight",
                         size: 20.0)
Ytbryan
quelle
6

Dieser Code funktioniert perfekt für mich.

  UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(15,23, 350,22)];
  [label setFont:[UIFont systemFontOfSize:11]];
Gaurav
quelle
Ich auch, [[self titleLabel] setFont: [UIFont systemFontOfSize: 36]]; nicht und ich weiß nicht warum
Leon
4

In Swift 3.0 können Sie den folgenden Code verwenden:

let textLabel = UILabel(frame: CGRect(x:containerView.frame.width/2 - 35, y: 
    containerView.frame.height/2 + 10, width: 70, height: 20))
    textLabel.text = "Add Text"
    textLabel.font = UIFont(name: "Helvetica", size: 15.0) // set fontName and Size
    textLabel.textAlignment = .center
    containerView.addSubview(textLabel) // containerView is a UIView
Imrul Kayes
quelle
3

WEIL es keine Schriftfamilie mit Namen gibt, wird @"System"daher size:36auch nicht funktionieren ...

Überprüfen Sie die in xcode verfügbaren Schriftarten im Attributinspektor und versuchen Sie es

Chetan Kumar
quelle
1

Für iOS 8

  static NSString *_myCustomFontName;

 + (NSString *)myCustomFontName:(NSString*)fontName
  {
 if ( !_myCustomFontName )
  {
   NSArray *arr = [UIFont fontNamesForFamilyName:fontName];
    // I know I only have one font in this family
    if ( [arr count] > 0 )
       _myCustomFontName = arr[0];
  }

 return _myCustomFontName;

 }
Ram Vinay Yadav
quelle
Könnte auch ein Problem Ihrer Mitgliedschaft im Schriftartenziel sein.