Espacio en blanco en la parte superior de UITextView en iOS 10

Tengo UITextView con texto. Todo estaba bien con iOS 6, pero ahora con iOS 7 deja el espacio en blanco encima y luego coloca el texto debajo de la mitad de la vista de texto. enter image description here

No configuré ningún contentOffSet. ¡Por favor ayuda!

Una vista de texto es una vista de desplazamiento. Los controladores de vista agregarán un desplazamiento de contenido automáticamente para desplazarse por las vistas, ya que se supone que querrán desplazarse hacia arriba detrás de la barra de navegación y la barra de estado.

Para evitar esto, configure la siguiente propiedad en el controlador de vista que contiene la vista de texto:

self.automaticallyAdjustsScrollViewInsets = NO 

La respuesta actual que dio IronManGill no es una buena solución, porque no se basa en una comprensión de por qué ocurre el problema en primer lugar.

La respuesta de jrturton tampoco es la forma más limpia de resolverlo. No necesita anular. ¡Mantenlo simple!

Todo lo que necesita es establecer lo siguiente:

 self.automaticallyAdjustsScrollViewInsets = NO; 

en el método viewDidLoad.

Consulte los documentos: https://developer.apple.com/documentation/uikit/uiviewcontroller/1621372-automaticallyadjustsscrollviewin

En el Interface Builder,

  • Seleccione el controlador de vista que contiene el UITextView.
  • Ve al inspector de atributos.
  • Desmarque “Ajustar las configuraciones de la vista de desplazamiento”.

Esto funcionó para mí

 textView.textContainerInset = UIEdgeInsetsZero; textView.textContainer.lineFragmentPadding = 0; 

Ir a Interface Builder :

  1. Seleccione el view controller que contiene su text view
  2. Adjusts Scroll View Insets propiedad Adjusts Scroll View Insets propiedad de Adjusts Scroll View Insets

enter image description here

Realmente me pregunto si esta es una característica real … Esta inserción automática de 64 puntos solo se agrega cuando UIScrollView o UITextView son más profundos que todas las subvistas de la vista del controlador de la vista. Por ejemplo, si agrega una vista atrás (aquí estoy hablando de z-buffer, no ver imbrication) la vista de desplazamiento, este recuadro de 64 puntos no se agrega automáticamente.

Por ejemplo, este agrega el recuadro:

enter image description here

En este caso, el recuadro no se agrega:

enter image description here

Esto realmente me parece extraño … ¿Por qué el sistema operativo mirar a la profundidad de la vista para decidir si debe ampliar la vista?

En veloz (Xcode 6)

  self.automaticallyAdjustsScrollViewInsets = false 

Puede eliminar el espacio en blanco en la parte superior de su UITextView agregando:

 yourTextView.textContainerInset = UIEdgeInsetsZero; 

Resolví este problema estableciendo el desplazamiento de contenido en un valor negativo. Aquí está el código Swift.

 yourTextView.setContentOffset(CGPoint(x: 0, y: -150), animated: true) 

Lo que debes entender es que esto se relaciona con la barra de navegación:

  • Si su contenido se encuentra debajo de la barra de navegación, desea que el controlador de vista ajuste automáticamente las inserciones de la vista de desplazamiento (valor predeterminado).
  • Si su contenido no está debajo de la barra de navegación (probablemente utilizó la guía de diseño superior para la restricción de espacio superior), puede desactivar el ajuste de inserción de vista de desplazamiento automático como se menciona en la mayoría de las demás respuestas.

Probé el siguiente truco, funcionó.

 - (void)viewDidLoad{ self.textView.scrollEnabled = NO; } - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; self.textView.scrollEnabled = YES; } 

Esta es una solución poco profesional, estoy seguro … Pero solo poner una etiqueta en blanco detrás de la vista de texto resuelve el problema.

Esto funcionó para mí (disponible desde iOS 7)

 [< #your UITextViewInstance#> setTextContainerInset:UIEdgeInsetsZero];