Este es un comentario muy importante
La clave para entender por qué funciona la respuesta de vitaminwater son tres cosas:
- Sepa que UITextView es una subclase de la clase UIScrollView
- Comprenda cómo funciona ScrollView y cómo se calcula su contentSize. Para más ver esto aquí respuesta y sus diversas soluciones y comentarios.
- Comprenda qué es contentSize y cómo se calcula. Mira aquí y aquí . También podría ayudar a que el ajuste
contentOffset
es probable que nada más que:
func setContentOffset(offset: CGPoint)
{
CGRect bounds = self.bounds
bounds.origin = offset
self.bounds = bounds
}
Para más información, vea objc scrollview y comprenda scrollview
Combinando los tres juntos, comprendería fácilmente que necesita permitir que el contentSize intrínseco de textView funcione junto con las restricciones de AutoLayout de textView para impulsar la lógica. Es casi como si tu textView funciona como un UILabel
Para que eso suceda, debe deshabilitar el desplazamiento, que básicamente significa el tamaño de scrollView, el tamaño de contentSize y, en caso de agregar un containerView, entonces el tamaño de containerView sería el mismo. Cuando son lo mismo, NO tienes desplazamiento. Y lo habrías hecho . Tener significa que no te has desplazado hacia abajo. ¡Ni siquiera un punto por debajo! Como resultado, la vista de texto se extenderá.0
contentOffset
0
contentOffSet
Tampoco vale nada, lo que significa que los límites y el marco de scrollView son idénticos. Si se desplaza hacia abajo 5 puntos, entonces su contentOffset sería , mientras que su sería igual a0
contentOffset
5
scrollView.bounds.origin.y - scrollView.frame.origin.y
5