es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El ajuste de adjustsFontSizeToFitWidth no funciona con UIButton en iOS 15.

Quiero ajustar el tamaño del texto en mi botón para que se ajuste automáticamente a los bordes del botón.

Este código funcionaba antes de iOS15, pero ahora no lo hace.

testButton.titleLabel?.adjustsFontSizeToFitWidth = true
testButton.titleLabel?.minimumScaleFactor = 0.1

¿Cómo puedo redimensionar automáticamente el texto para que se ajuste al tamaño de mi botón en iOS 15?

Este es un código de playground para hacer pruebas. Incluye todo lo que he intentado, pero aún no funciona.

import UIKit
import PlaygroundSupport

// Creando el botón
let testButton = UIButton(frame: CGRect(x: 100, y: 100, width: 300, height: 300))
testButton.setTitle("test", for: .normal)

// Todo lo que he encontrado en otras respuestas que se supone que funciona
var titleLabel = testButton.titleLabel!
titleLabel.font = UIFont.systemFont(ofSize: 300)
titleLabel.adjustsFontSizeToFitWidth = true
titleLabel.minimumScaleFactor = 0.1
titleLabel.numberOfLines = 1 // También he intentado con 0
titleLabel.lineBreakMode = .byClipping

// Configurando el botón
testButton.configuration = UIButton.Configuration.filled()

// Mostrar el botón
let containerView = UIView(frame: CGRect(x: 0, y: 0, width: 500, height: 500))
containerView.backgroundColor = .white
PlaygroundPage.current.liveView = containerView
containerView.addSubview(testButton)

Preguntas relacionadas que ya he revisado e intentado:
https://stackoverflow.com/questions/53725496/best-way-to-adjust-font-size-with-width-and-height-of-uilabel
https://stackoverflow.com/questions/28734000/swift-adjusting-fontsize-to-fit-the-width-of-the-layout-programmatically
https://stackoverflow.com/questions/28996320/how-to-get-adjustsfontsizetofitwidth-to-function-properly
https://stackoverflow.com/questions/8812192/how-to-set-font-size-to-fill-uilabel-height
https://stackoverflow.com/questions/38062091/auto-change-the-font-size-to-fit-the-button-in-swift
https://stackoverflow.com/questions/32694519/uibutton-auto-adjust-button-font-size-swift

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para redimensionar automáticamente el texto en un UIButton para que se ajuste al tamaño del botón en iOS 15, puedes intentar el siguiente código:

    testButton.titleLabel?.adjustsFontForContentSizeCategory = true
    

    Esta propiedad ajusta automáticamente el tamaño de fuente de la etiqueta del título para que coincida con los cambios en la categoría de tamaño de contenido preferida del usuario, que se puede configurar en Configuración -> Tamaño de visualización y texto -> Texto más grande en el dispositivo.

    Además, puedes configurar las siguientes propiedades para personalizar el escalado automático:

    testButton.titleLabel?.minimumScaleFactor = 0.5 // el factor mínimo de escala de fuente permitido
    testButton.titleLabel?.lineBreakMode = .byTruncatingTail // cómo se debe truncar el texto si excede el ancho del botón
    testButton.titleLabel?.numberOfLines = 1 // número de líneas que puede tener la etiqueta del título
    testButton.titleLabel?.adjustsFontSizeToFitWidth = true // si se debe reducir la fuente para que se ajuste al ancho del botón
    

    Asegúrate también de establecer la fuente deseada para la etiqueta del título, ya sea seleccionando una fuente de sistema predefinida o creando una fuente personalizada.

Comments are closed.