Tengo UITextView con algo de texto. Todo estaba bien con iOS 6, pero ahora con iOS 7 deja el espacio en blanco en la parte superior y luego coloca el texto debajo de la mitad de la vista de texto.
No configuré ningún contentOffSet. ¡Por favor ayuda!
Tengo UITextView con algo de texto. Todo estaba bien con iOS 6, pero ahora con iOS 7 deja el espacio en blanco en la parte superior y luego coloca el texto debajo de la mitad de la vista de texto.
No configuré ningún contentOffSet. ¡Por favor ayuda!
Respuestas:
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, establezca 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 la 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 es necesario anular. ¡Mantenlo simple!
Todo lo que necesita es configurar lo siguiente:
self.automaticallyAdjustsScrollViewInsets = NO;
en el método viewDidLoad.
Consulte los documentos: https://developer.apple.com/documentation/uikit/uiviewcontroller/1621372-automaticallyadjustsscrollviewin
automaticallyAdjustsScrollViewInsets
es obsoleto. Desde iOS11, usecontentInsetAdjustmentBehavior
En Interface Builder,
Esto funcionó para mi
textView.textContainerInset = UIEdgeInsetsZero;
textView.textContainer.lineFragmentPadding = 0;
Ir a Interface Builder
:
view controller
que contenga sutext view
Adjusts Scroll View Insets
propiedadRealmente me pregunto si esto es una característica real ... Este recuadro automático de 64 puntos solo se agrega cuando el UIScrollView
o UITextView
como la mayor profundidad de todas las subvistas de la vista del controlador de vista. Por ejemplo, si agrega una vista detrás (aquí estoy hablando de z-buffer, no de imbricación de vistas) la vista de desplazamiento, esta inserción de 64 puntos no se agrega automáticamente.
Por ejemplo, este agrega el recuadro:
En este caso, no se agrega el recuadro:
Esto realmente me parece extraño ... ¿Por qué el sistema operativo miraría la profundidad de la vista para decidir si debería extender la vista?
En Swift (Xcode 6)
self.automaticallyAdjustsScrollViewInsets = false
viewDidLoad
View Controller con la vista de texto.
automaticallyAdjustsScrollViewInsets
es obsoleto. Desde iOS11, usecontentInsetAdjustmentBehavior
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)
[self.textView setContentOffset:CGPointMake(0.f, -self.topLayoutGuide.length) animated:NO];
Lo que debes entender es que esto se relaciona con la barra de navegación:
Solución para Swift 4:
textView.textContainerInset = UIEdgeInsets.zero
Esta es una solución poco profesional, estoy seguro ... Pero simplemente poner una etiqueta en blanco detrás de la vista de texto resuelve el problema.