¿Cómo cambio el tamaño de fuente de un UILabel en Swift?

246

label.font.pointSize es de solo lectura, así que no estoy seguro de cómo cambiarlo.

Arrendajo
fuente
extensión UILabel {fuente func (tamaño: CGFloat) {self.font = UIFont (descriptor: self.font.fontDescriptor, tamaño: tamaño)}}
Mohammad Razipour

Respuestas:

589

Puedes hacerlo así:

label.font = UIFont(name: label.font.fontName, size: 20)

O así:

label.font = label.font.withSize(20)

Esto usará la misma fuente. 20 pueden ser del tamaño que quieras, por supuesto.

Nota: La última opción sobrescribirá el peso de la fuente actual enregular lo que si desea conservar el peso de la fuente, use la primera opción.

Actualización de Swift 3 :

label.font = label.font.withSize(20)

Actualización de Swift 4 :

label.font = label.font.withSize(20)

o

label.font = UIFont(name:"fontname", size: 20.0)

y si usas las fuentes del sistema

label.font = UIFont.systemFont(ofSize: 20.0)
label.font = UIFont.boldSystemFont(ofSize: 20.0)
label.font = UIFont.italicSystemFont(ofSize: 20.0)
Connor
fuente
55
De hecho, esto cambia la propiedad pointSize de la fuente. Sin embargo, pointSize se restablece inmediatamente a 17.0 antes de que la etiqueta se vuelva a dibujar. Entonces, hay un poco más que eso para ver realmente un tamaño de fuente diferente en la pantalla.
Jay
1
¿Estás configurando la fuente en 17 en cualquier lugar? Storyboard?
Connor
1
Lo ejecuté en mi iPhone 5 y su código funciona. Debe ser un error en el simulador.
Jay
Eso es interesante. Sin embargo, no estoy realmente sorprendido de ver otro error. Me alegro de que esté funcionando
Connor
55
Hay algo realmente malo con la documentación cuando busqué en Google esto en lugar de solo buscarlo porque sabía que sería más rápido.
Andrew Plummer
72

Creo que la mejor manera de hacer esto: si mantener la misma fuente que ya está asignada UILabel sería:

(usando Swift)

label.font = label.font.fontWithSize(20)

(usando Swift 3)

label.font = label.font.withSize(20)

Lo ideal sería configurar esto en el viewDidLayoutSubviewsmétodo, ya que no necesita cambiar cada vez que aparece la vista.

mouselangelo
fuente
39
label.font = UIFont.systemFontOfSize(20)
ma11hew28
fuente
55
label.font = UIFont.systemFont (ofSize: 20) // en swift 3
Kang Byul
Esta solución no funcionará para fuentes personalizadas. Siempre devolverá la fuente del sistema.
Awais Fayyaz
24

Podemos configurar la fuente según nuestros requisitos como,

label.font = UIFont(name: "Avenir-Light", size: 15.0)
label.font = UIFont.boldSystemFontOfSize(15)
label.font = UIFont.italicSystemFontOfSize(15)
label.font = UIFont.systemFontOfSize(17)
Gautam Sareriya
fuente
8

Si solo quieres cambiar el tamaño de tu fuente, creo esta extensión

// Add extension

extension UILabel {
    func setSizeFont (sizeFont: Double) {
        self.font =  UIFont(name: self.font.fontName, size: sizeFont)!
        self.sizeToFit()
    }
}

// Use

myLabel.setSizeFont(60)
YannSteph
fuente
Esto me ayudo. Cambié el tamaño de la fuente, está funcionando en Swift 4.
R. Mohan
6

Puedes dar así también

labelName.font = UIFont(name: "systemFont", size: 30)
Santo
fuente
5

En Swift 3 otra vez ...

myLabel.font = myLabel.font.withSize(18)
David DelMonte
fuente
4

Swift-3.1

label.font = UIFont.systemFont (ofSize: 12)

aqsa arshad
fuente
3

En swift3, suponga que su nombre UILable es myLable y desea cambiar su tamaño de fuente.

myLable.font = UIFont.systemFont(ofSize: 10)
Dilip Jangid
fuente
2

Puedes usar una extensión.

import UIKit

extension UILabel {

    func sizeFont(_ size: CGFloat) {
        self.font = self.font.withSize(size)
    }
}

Para usarlo:

self.myLabel.fontSize(100)
lhmgrassi
fuente
2

Apple sigue cambiando las cosas sin razón: Swift 4+:

myLabel.font = UIFont.systemFont(ofSize: 16)

¡Gracias Apple por perder el tiempo de las personas para descubrir qué métodos de "tamaño de fuente" necesitan usar!

Mujtaba Mahmood
fuente
2

Programáticamente

label.font = UIFont.systemFont(ofSize: 20.0)
label.font = UIFont.boldSystemFont(ofSize: 20.0)
label.font = UIFont.italicSystemFont(ofSize: 20.0)

label.font = UIFont(name:"Helvetica Neue", size: 20.0)//Set your font name here

A través de Story Board

Para mostrar varias líneas, establezca 0 (cero), esto mostrará más de una línea en su etiqueta.

Si desea mostrar solo 2 líneas, configure 2.

ingrese la descripción de la imagen aquí

Si desea establecer el tamaño de fuente mínimo para la etiqueta Haga clic en Reducción automática y seleccione Tamaño de fuente mínimo opción

Ver abajo pantallas

ingrese la descripción de la imagen aquí

Aquí establezca el tamaño de fuente mínimo

EX: 9 (en esta imagen)

Si su etiqueta recibe más texto en ese momento, el texto de su etiqueta se reducirá hasta 9

ingrese la descripción de la imagen aquí

iOS
fuente
2

Swift 4.2

myLabel.font = UIFont.systemFont(ofSize: 12)
Elshad Karimov
fuente
1

Utilicé fontWithSizeuna etiqueta con fuente de sistema de luz, pero vuelve a cambiar a fuente de sistema normal.

Si desea mantener los rasgos de la fuente, mejor incluir los descriptores.

label.font = UIFont(descriptor: label.font.fontDescriptor(), size: 16.0)

Ikhsan Assaat
fuente
1

En Swift 3:

label = UIFont.systemFont(ofSize: 20)

y para usar tamaños predeterminados del sistema, por ejemplo:

label = UIFont.systemFont(ofSize: UIFont.smallSystemFontSize)
Casey Murray
fuente
Creo que olvidaste label.font
Ethan Parker
0

Swift 3

label.font.withSize(16)
mate
fuente
0

Swift 3.1

import UIKit

extension UILabel {
    var fontSize: CGFloat {
        get {
            return self.font.pointSize
        }
        set {
            self.font =  UIFont(name: self.font.fontName, size: newValue)!
            self.sizeToFit()
        }
    }
}
Adam Smaka
fuente
0

swift 4:

label.font = UIFont("your font name", size: 15)

Además, si desea establecer la fuente de la etiqueta en todas las vistas de su proyecto, intente esto en appDelegate>didFinishLaunch: UILabel.appearance().font = UIFont("your font name", size: 15)

ZahraAsgharzade
fuente
0

En caso de que desee utilizar una fuente personalizada con la opción en negrita:

nameLabel.font = UIFont(name: "GillSans-Bold", size: 27)
Badr
fuente
-1

SWIFT 3.1

Label.font = Label.font.withSize (NewValue)

Ittai Oren
fuente
Esto no es correcto y no está escrito utilizando las convenciones de nomenclatura de Cocoa.
Womble
-1

Es muy fácil y conveniente cambiar el tamaño de fuente del guión gráfico, y puede ver instantáneamente el resultado del cambio.

En realidad, también es muy fácil cambiar otros atributos de fuente en el guión gráfico, como estilo, familia de fuentes, etc.

ingrese la descripción de la imagen aquí

Colmillo
fuente