guidelines change buttons apple ios uibutton uilabel

ios - change - ¿Cómo puedo dejar que el texto se ajuste a UIButton?



uibutton set title swift (5)

problema:

El tamaño del botón es suficiente, sin embargo, cuando cambio el título, el texto del título no puede ajustarse al ancho del botón. ¿Cualquier función de SDK puede resolver este problema, o necesito codificar manualmente para resolverlo?

Por favor, consulte las siguientes imágenes.

diseño en el archivo de plumilla.

show inicial en simulador

cuando cambio el texto del título

probado algunas formas antes

  1. _button.titleLabel.adjustsFontSizeToFitWidth = YES;
    la forma cambiará mi tamaño de fuente. No puedo aceptar el camino.

  2. [_button setTitleEdgeInsets: UIEdgeInsetsMake (10.0, 10.0, 0.0,0.0)];
    la forma de cambiar solo la posición de la etiqueta, no el tamaño de la etiqueta

  3. [_button.titleLabel sizeToFit];
    El resultado es igual con la imagen (3).

  4. [_button sizeToFit];
    el título se movió a la esquina superior izquierda y el título sigue siendo el mismo resultado.

Simplemente confundido, el tamaño de mi botón es lo suficientemente grande, ¿por qué el tamaño del título es tan pequeño?


Aquí está la versión Swift:

let button = UIButton() button.titleLabel?.numberOfLines = 1 button.titleLabel?.adjustsFontSizeToFitWidth = true button.titleLabel?.lineBreakMode = NSLineBreakMode.ByClipping


Asegúrese también de que la etiqueta no ajusta el espaciado posterior, ya que parece tener prioridad sobre el ajuste del tamaño de fuente. También asegúrate de que minimumScaleFactor <1.

button.titleLabel.adjustsFontSizeToFitWidth = YES; button.titleLabel.adjustsLetterSpacingToFitWidth = NO; button.titleLabel.minimumScaleFactor = 0.5;


En IB, simplemente seleccione el botón, vaya al menú del editor y elija "Tamaño para ajustar el contenido"


Para las personas que se encuentran con esta pregunta:

Intenta usar el setter:

[self.myButton setTitle:@"Title" forState:UIControlStateNormal]; [self.myButton sizeToFit];


Utilizar esta.

C objetivo

button.titleLabel.numberOfLines = 1; button.titleLabel.adjustsFontSizeToFitWidth = YES; button.titleLabel.lineBreakMode = NSLineBreakByClipping;

Swift 2.0

button.titleLabel?.numberOfLines = 0 button.titleLabel?.adjustsFontSizeToFitWidth = true button.titleLabel?.lineBreakMode = NSLineBreakMode.ByWordWrapping

NOTA: Código Swift de cortesía: @ Rachel Harvey