¿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.


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)

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.


39
label.font = UIFont.systemFontOfSize(20)

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)

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)

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)



3

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

myLable.font = UIFont.systemFont(ofSize: 10)

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)

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!


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í



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)


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)

Creo que olvidaste label.font
Ethan Parker


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()
        }
    }
}

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)


0

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

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

-1

SWIFT 3.1

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


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í

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.