iphone ios uiscrollview uitextview

iphone - Se está cortando el texto grande en UITextView que está dentro de UIScrollView



ios (16)

Definitivamente iOS7. Tuve este mismo problema aplicando a todas las UITextViews que se redimensionaron, tanto xib como el código generado. Encontré que textContainer.size necesitaba un ajuste después de que se cambiara el cuadro UITextView.

Creé este código de categoría para ajustar textContainer.size pero también parece necesitar un ajuste después de configurar el valor del texto, así que tengo que llamar a adjustAfterFrameChange después de cualquier cambio de texto si no se sigue configurando el tamaño del marco. Este código supone que UITextView no está haciendo nada con setFrame: sí mismo, así que saque setFrame: y llame a adjustAfterFrameChange manualmente si quiere evitar ese riesgo.

Editar: cambiado

self.textContainer.size = self.frame.size; // fix for cut off text

a

self.textContainer.size = self.contentSize; // fix for cut off text

@interface UITextView(Extras) - (void)adjustAfterFrameChange; @end @implementation UITextView(Extras) - (void)adjustAfterFrameChange { #if defined(__IPHONE_7_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_7_0 if ([self respondsToSelector:@selector(textContainer)]) self.textContainer.size = self.contentSize; // fix for cut off text #endif } - (void)setFrame:(CGRect)frame { [super setFrame:frame]; [self adjustAfterFrameChange]; } @end

Estoy teniendo un problema grave que parece que no puedo solucionar y me está volviendo loco los últimos dos días. He buscado por todas partes y no puedo encontrar una solución, a pesar de que he probado muchas.

Tengo un UITextView dentro de un UIScrollView . Soy capaz de cambiar el tamaño de la UITextView dinámicamente dentro de la vista de desplazamiento para mostrar el texto. Pero cuando el UITextView contiene texto muy grande, se corta cuando me desplazo casi hasta el final. Sin embargo, el marco de UIScrollView todavía se está dimensionando correctamente.

Leí estos posts: this this y muchos otros similares.

UIScrollview y UITextview se crean en xib mediante AutoLayout.

Aquí está mi código actual y una captura de pantalla, ya que puede ver que el espacio en blanco en la captura de pantalla debe estar lleno de texto. por favor ayuda.

- (void)viewDidAppear:(BOOL)animated { CGRect frame = self.longDescField.frame; frame.size.height = self.longDescField.contentSize.height; self.longDescField.frame = frame; self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, self.longDescField.contentSize.height + 200); self.scrollView.scrollEnabled = YES; [self.scrollView flashScrollIndicators]; }


En Swift solucioné este problema simplemente configurando el textContainerInset de mi UITextView :

textView.textContainerInset = UIEdgeInsets(top: 0.0, left: 0.0, bottom: 50.0, right: 0.0)


Este problema ha existido desde iOS 7 y todavía está presente en iOS 11.

Sin embargo, no pude mantener el comportamiento de desplazamiento normal configurando scrollEnabled = NO antes del cambio de tamaño, como lo recomienda @igz. En cambio, activé y off on desplazamiento después del cambio de tamaño

// Resize text view here textView.scrollEnabled = NO; textView.scrollEnabled = YES;

Esto obligó al texto cortado a renderizarse correctamente.


Este problema se puede solucionar configurando la propiedad de diseño contiguo en falso.

textView.layoutManager.allowsNonContiguousLayout = false

Aunque la documentación dice que el valor predeterminado es falso, en realidad se establece en verdadero para un UITextView.


Esto sucede todo el tiempo, desde también en Interface Builder.

Cuando se selecciona la vista de texto, en el Inspector de utilidades, desmarque la opción Muestra el indicador vertical. El texto recortado aparece ahora.


Estoy enfrentando la misma situación. Tengo que deshabilitar el desplazamiento de UITextView y hacer que se recorte la última línea. Aquí está mi solución:

//In the UITextView subClass, override "gestureRecognizerShouldBegin" and let the scrolling of UITextView remain on. -(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { if ([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]] && gestureRecognizer.view == self){ return NO; } return [super gestureRecognizerShouldBegin:gestureRecognizer]; }


Gracias a todos por su ayuda. Esto es, en última instancia, lo que terminó trabajando para mí en iOS7.

Tuve que deshabilitar el diseño automático para este xib en particular.

Luego hizo lo siguiente:

[textView setScrollEnabled:YES]; [textView setText:text]; [textView sizeToFit]; [textView setScrollEnabled:NO];


Ninguna de estas respuestas funcionó para mí.

Estaba engañando con el guión gráfico y de alguna manera está funcionando ahora. Todavía se ve mal en el guión gráfico, pero en el dispositivo ahora se muestra bien.

Hice varias cosas , incluyendo alternar muchas de las opciones para el campo de texto.

Creo que lo que lo arregló para mí fue hacer la vista más grande, construirla y volverla a tener el tamaño correcto .

Mis disculpas por una vaga respuesta incierta, pero tal vez ayude. Este proyecto se escribió originalmente para iOS 5 y es posible que la vista de texto no se haya ensuciado mucho desde entonces.


Para mí, la solución fue poner sizeToFit después de personalizar el textView

[self.yourTextView sizeToFit];

Esto debería ser lo último que haga cuando manipule la vista de texto, no debe ser antes de rellenar el texto del contenido.


Prueba esto

[self.textView setContentInset:UIEdgeInsetsMake(-8.0, 0, -8.0, 0)];

Funciona para la visualización de texto cortado en la UITextView.


Puede que me equivoque, pero no entiendo bien su problema, pero ¿de qué sirve utilizar un UIScrollView, ya que con la clase UITextView se implementa el comportamiento de una región de texto multilínea desplazable?

Debes descartar el UIScrollView.


Solo prueba esto.

En IOS 8 y Xcode 6.3,

textview.scrollEnabled=YES; [self.textview setContentInset:UIEdgeInsetsMake(-10.0, 0, -5.0, 0)];


Tengo el mismo problema para una vista de texto (sin una vista de desplazamiento). Resuelto esto (Xcode 7.3.1, iOS 9.3) simplemente desactivando "Desplazamiento habilitado" en el Inspector de atributos.


Tuve un problema similar, en el que el texto largo se cortaba después de cambiar el tamaño de la vista de texto. Desactivar el desplazamiento Habilitado antes de que el cambio de tamaño pareciera arreglarlo. Claro que parece un error de iOS 7.


Tuvimos el mismo problema, excepto que la mitad izquierda o la mitad derecha del UITextView se cortaba. Ocurrió tanto en iOS 7 como en iOS 6, en una variedad de teléfonos. Vocación:

myTextView.scrollEnabled = NO;

en la vista, WillAppear solucionó el problema.


Tuvimos un problema como este con el lanzamiento de iOS7. Cuando llamamos a setText que agregó una nueva línea (o líneas) a nuestro UITextView, la vista de texto no estaba usando la nueva altura correcta para su redibujado. El setNeedsDisplay, setNeedsLayout, el redibujado de capas, el redibujado de la vista completa, etc. no funcionaron. Finalmente forzamos una pérdida y ganancia de enfoque:

[textView resignFirstResponder]; [textView becomeFirstResponder];

Esto forzó el recálculo de la altura y el redibujado correcto. Afortunadamente, no hace que el teclado salte y se salga, pero vale la pena realizar pruebas de regresión que en cualquier versión de iOS que admita su aplicación.