iOS: establezca el tamaño de fuente de UILabel mediante programación

83

Estoy intentando establecer el tamaño de fuente de un UILabel. No importa el valor que ponga, aunque el tamaño del texto no parece cambiar. Aquí está el código que estoy usando.

[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
fuente

Respuestas:

161

Prueba [UIFont systemFontOfSize:36]o [UIFont fontWithName:@"HelveticaNeue" size:36] ie[[self titleLabel] setFont:[UIFont systemFontOfSize:36]];

JohnVanDijk
fuente
2
setFont está obsoleto en iOS 10.2
TheJeff
76

C objetivo:

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

Rápido:

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

simplemente cambia el tamaño de fuente de un UILabel.

fujianjin6471
fuente
1
Aparentemente, setFont está obsoleto, así quelabel.font = // Whatever font.
Rudolf Real
@FabricioPH ¿cómo si quiero configurar la label.font = // whatever currently system's fontfuente?
Chen Li Yong
1
@ChenLiYong Ya no estoy interesado en el desarrollo de iOS. Quizás buscar en Google muestre algunos resultados relevantes sobre cómo configurar la fuente del sistema actual o cómo obtenerla. google.com/?#q=ios%20system%20font
Rudolf Real
22

Swift 3.0 / Swift 4.2 / Swift 5.0

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

Si está buscando un código swift:

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

Este código me funciona perfectamente.

  UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(15,23, 350,22)];
  [label setFont:[UIFont systemFontOfSize:11]];
Gaurav
fuente
Yo también, [[self titleLabel] setFont: [UIFont systemFontOfSize: 36]]; no lo hice y no sé por qué
Leon
4

En Swift 3.0, puede usar este código a continuación:

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
fuente
3

Es PORQUE no hay una familia de fuentes con nombre, @"System"por size:36lo tanto , tampoco funcionará ...

Verifique las fuentes disponibles en xcode en el inspector de atributos e intente

Chetan Kumar
fuente
1

Para 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
fuente
También podría ser un problema de la membresía de destino de la fuente.