ios - uitextfielddelegate
Espacio en blanco en la parte superior de UITextView en iOS 10 (13)
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.
No configuré ningún contentOffSet. ¡Por favor ayuda!
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".
En veloz (Xcode 6)
self.automaticallyAdjustsScrollViewInsets = false
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];
Esto funcionó para mí
textView.textContainerInset = UIEdgeInsetsZero;
textView.textContainer.lineFragmentPadding = 0;
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
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;
}
Puede eliminar el espacio en blanco en la parte superior de su UITextView
agregando:
yourTextView.textContainerInset = UIEdgeInsetsZero;
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:
En este caso, el recuadro no se agrega:
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?
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)
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