¿Cómo ajustar el ancho de UITextView para que se ajuste a su contenido sin envolverlo?

Cambiar el tamaño de UITextView para ajustar la altura de su contenido se puede lograr de la siguiente manera:

CGRect frame = _textView.frame; frame.size.height = _textView.contentSize.height; _textView.frame = frame; 

¿Hay algo similar al ancho de ajuste, sin envolver el text de contenido?

1) Puede usar NSString UIKit Additions para calcular el tamaño tomado por el text (y ajustar el tamaño de su UITextView en consecuencia). Puede que hayas visto un ejemplo aquí .

Por ejemplo, si necesita saber el CGSize que toma su NSString si se representa en una sola línea, use CGSize sz = [_textView.text sizeWithFont:_textView.font] luego ajuste su marco teniendo en count este valor de tamaño.

Si necesita saber el tamaño que toma su text si se representa en varias líneas, envuélvalo si el text alcanza un ancho determinado, use sizeWithFont:constrainedToSize:lineBreakMode: lugar, etc.


2) Es posible que también le interesen los sizeThatFits: y sizeToFit de UIView . El primero devuelve el CGSize (que se ajusta al parámetro CGSize pasado en el parámetro dado) para que su UITextView pueda mostrar todo su text. El segundo realmente hace el cambio de tamaño, ajustando el marco para usted.