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.

Una línea en UIButton iOS15

Tengo un problema. No puedo establecer el número de líneas en 1 en UIButton. Para configurar el botón, uso UIButton.Configuration desde iOS 15. Este es mi botón con un texto largo:

Me gustaría colocar el final del texto al final del botón. He intentado establecer estos comandos:

parentButton.titleLabel!.lineBreakMode = .byWordWrapping
parentButton.titleLabel!.numberOfLines = 1

Y NSLayoutConstraint

    parentButton.topAnchor.constraint(equalTo: textField.bottomAnchor,   constant: 12),
    parentButton.leftAnchor.constraint(equalTo: view.leftAnchor, constant: 25),
    parentButton.rightAnchor.constraint(lessThanOrEqualTo: view.rightAnchor, constant: -25),
    parentButton.heightAnchor.constraint(equalToConstant: 30),

No funciona. ¿Algún idea?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Una posible solución para este problema podría ser establecer el lineBreakMode del titleLabel del UIButton en .truncateTail. Esto asegurará que el final del texto siempre sea visible y que el texto se trunque al final si es demasiado largo.

    El código para establecer el lineBreakMode sería:

    parentButton.titleLabel!.lineBreakMode = .truncateTail
    

    Además, también puede intentar ajustar las restricciones para asegurarse de que el botón pueda expandirse horizontalmente si es necesario, y mantener una altura fija.

    Una opción podría ser usar la restricción .greaterThanOrEqual al establecer el anclaje derecho, en lugar de .lessThanOrEqualTo, para permitir que el botón se expanda si es necesario:

    parentButton.rightAnchor.constraint(greaterThanOrEqualTo: view.rightAnchor, constant: -25),
    

    Esto, combinado con el modo de truncamiento de línea truncateTail, debería asegurarse de que todo el texto sea visible y el botón ajuste su ancho si es necesario.

Comments are closed.