change ios objective-c swift uibutton uilabel

ios - change - Ajuste el tamaño de fuente del texto para que se ajuste a UIButton



set title swift (8)

Código actualizado para Swift 3.0:

yourButton.titleLabel?.minimumScaleFactor = 0.5 yourButton.titleLabel?.numberOfLines = 0 yourButton.titleLabel?.adjustsFontSizeToFitWidth = true

Quiero asegurarme de que el texto del botón se ajuste a un UIButton, mientras que el UIButton tiene un tamaño fijo.

Por supuesto que puedo acceder al títuloLabel de la UIButton. En una etiqueta, establecería el autoshrink a la escala de fuente mínima que parece corresponder a

self.myButton.titleLabel.adjustsFontSizeToFitWidth = YES;

, pero en realidad no se comporta igual, ya que solo hace que el texto se ajuste horizontalmente en los límites, no verticalmente, por lo que no cambia el tamaño de la fuente.

¿Cómo puedo ajustar el tamaño de fuente de una etiqueta mediante programación para que el texto se ajuste a los límites de la etiqueta (como se muestra en Objetivo en la imagen de abajo)?

Ya lo intente

self.myButton.titleLabel.numberOfLines = 0; self.myButton.titleLabel.minimumScaleFactor = 0.5f;

Sin éxito, siempre terminó como en adjustsFontSizeToFitWidth en el lado izquierdo de la imagen de arriba.

Edit : la solución también tiene que ser compatible con ios7


En Xcode-> Abrir guión gráfico-> Ir al inspector de atributos-> Control-> Alineación-> Elegir segundo tanto en horizontal como en vertical.

o

YourButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;


Escriba esta línea después de su código:

yourButton.SizeToFitWidth=YES;


Intenta llamar al siguiente método.

button.titleLabel?.baselineAdjustment = UIBaselineAdjustment.AlignCenters


Si prefiere hacerlo en el guión gráfico, simplemente haga clic en el botón, luego muestre el inspector de atributos y configure el salto de línea en "Ajuste de palabra".


También puede configurar un atributo de tiempo de ejecución definido por el usuario en el Interface Builder para el botón donde

titleLabel.adjustsFontSizeToFitWidth = true


prueba esto:

[myButton setFont:[[myButton font] fontWithSize:--originalButtonFontSize]]; textWidth = [text sizeWithFont:[myButton font]].width; }


self.mybutton.titleLabel.minimumScaleFactor = 0.5f; self.mybutton.titleLabel.numberOfLines = 0; <-- Or to desired number of lines self.mybutton.titleLabel.adjustsFontSizeToFitWidth = YES;

... hizo el truco, después de layoutIfNeeded en viewDidLoad Resulta que, todos ellos deben configurarse para ajustar el tamaño de fuente, no solo para que encaje en el marco.

Actualización para Swift 3:

mybutton.titleLabel?.minimumScaleFactor = 0.5 mybutton.titleLabel?.numberOfLines = 0 <-- Or to desired number of lines mybutton.titleLabel?.adjustsFontSizeToFitWidth = true