settitle ios uibutton swift uifont

ios - settitle - Cómo cambiar la fuente de UIButton con Swift



set title swift (13)

Estoy intentando cambiar la fuente de un UIButton usando Swift ...

myButton.font = UIFont(name: "...", 10)

Sin embargo, .font está en desuso y no estoy seguro de cómo cambiar la fuente de lo contrario.

¿Alguna sugerencia?


La notación de puntos es asombrosa 👌

btn.titleLabel?.font = .systemFont(ofSize: 12)


De esta manera no funciona ahora:

btn.titleLabel?.font = UIFont(name: "Helvetica", size:12)

Esto funciona:

btn.titleLabel?.font = UIFont.init(name: "Helvetica", size:12)


De la documentation :

La fuente utilizada para mostrar el texto en el botón. ( Obsoleto en iOS 3.0 . En su lugar, use la propiedad de font del titleLabel ).


Debería ir a través de la propiedad titleLabel .

button.titleLabel.font

La propiedad de font ha quedado obsoleta desde iOS 3.0.


Echa un vistazo here .

En su lugar, debe establecer la fuente del título Label del botón.

myButton.titleLabel!.font = UIFont(name: "...", 10)


Ejemplo: button.titleLabel?.font = UIFont(name: "HelveticaNeue-Bold", size: 12)

  • Si desea utilizar una fuente predeterminada de su propia familia, use por ejemplo: "HelveticaNeue"
  • Si desea especificar la fuente de la familia, use por ejemplo: "HelveticaNeue-Bold"

En Xamarin.iOS, puede escribir el código en C # de la siguiente manera:

myButton.TitleLabel.Font = UIFont.FromName ("Helvetica-Bold", 33f);


Esto funciona en Swift 3.0:

btn.titleLabel?.font = UIFont(name:"Times New Roman", size: 20)


No necesita obligar a desenvolver el titleLabel para configurarlo.

myButton.titleLabel?.font = UIFont(name: YourfontName, size: 20)

Como no está usando TitleLabel aquí, puede usarlo de manera opcional y si es nulo, será una operación no operativa.

También agregaré como otras personas dicen, la propiedad de fuente está en desuso, y asegúrese de usar setTitle:forControlState: cuando configure el texto del título.


Para Swift 3.0 :

button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 16)

donde "boldSystemFont" y "16" se pueden reemplazar con su fuente y tamaño personalizados.


Si configura AttributedString como UIButton, puede hacer lo siguiente.

let attributedText = NSAttributedString(string: "Hello", attributes: [NSAttributedStringKey.font: UIFont(name: "Calibri", size: 19)]) okayButton.setAttributedTitle(attributedText, for: .normal)


Si tiene problemas con el tamaño de la fuente (su fuente no responde a los cambios de tamaño) ...

@codester tiene el código correcto:

myButton.titleLabel!.font = UIFont(name: YourfontName, size: 20)

Sin embargo, el tamaño de mi fuente no cambiaba. Resulta que solicité una fuente que no existía ("HelveticaNeue-Regular"). No estaba causando un bloqueo, pero parecía estar ignorando esa declaración de fuente debido a eso. Una vez que cambié la fuente a algo que sí existe, los cambios a "size: x" sí se renderizaron.


Use titleLabel en titleLabel lugar. La propiedad de la font se descuenta en iOS 3.0. Tampoco funciona en Objective-C. titleLabel es una etiqueta utilizada para mostrar el título en UIButton .

myButton.titleLabel?.font = UIFont(name: YourfontName, size: 20)

Sin embargo, al configurar el texto del título, solo debe usar setTitle:forControlState: No use titleLabel para establecer directamente el texto para el título.