Cambiar el tamaño del campo de texto en función del contenido

¿Cómo se puede cambiar el tamaño de un campo de texto en función del contenido mientras se usa el diseño automático en una aplicación de iOS escrita en Swift?

El campo de texto cambiará de tamaño según sea necesario para ajustarse a su contenido cuando la vista se carga y mientras el usuario escribe.

Idealmente, el campo de texto dejaría de cambiar el tamaño en un cierto punto, digamos, 6 líneas, y se volvería desplazable.

Tienes que usar un UITextView lugar de un UITextField

Entonces, puedes usar el método sizeThatFits .

Pero primero debes saber qué tan alto será una línea. Puede obtener esa información usando lineHeight :

 var amountOfLinesToBeShown:CGFloat = 6 var maxHeight:CGFloat = yourTextview.font.lineHeight * amountOfLinesToBeShown 

Después de eso, simplemente llame al método siteThatFits dentro de su método viewDidLoad y configure maxHeight ( line * 6 ) como su altura de vista de texto:

 yourTextview.sizeThatFits(CGSizeMake(yourTextview.frame.size.width, maxHeight)) 

Swift 3

 var textView : UITextView! override func viewDidLoad() { super.viewDidLoad() textView = UITextView() textView.sizeThatFits(CGSize(width: textView.frame.size.width, height: textView.frame.size.height)) }