UITextView contentOffset no inicializado con CGPointZero en iOS7

Tengo una punta con una pantalla completa textView. En viewDidLoad ,

 self.textView.attributedText = //some text; 

Es tan simple como esto y funciona bien, excepto para el modo horizontal de iPhone.

En modo horizontal, cuando contentOffset.y a esta página, contentOffset.y de este textView no se inicia en cero. Por lo tanto, de manera pnetworkingeterminada, la position de desplazamiento está en el centro del contenido (esperaba que esto estuviera al comienzo del contenido).

Para el modo de retrato de ipad y iphone, la position de desplazamiento está al comienzo del contenido ( contentOffset.y es cero)

En iOS 7, también estaba teniendo el mismo problema. El desplazamiento de UITextView comienza en el centro en la vista de paisaje. Tengo la barra de navigation en la parte superior del controller de vista. Para resolver este problema, he configurado el contenidoOffset en viewDidLoad de la siguiente manera:

 [self.textView setContentOffset: CGPointMake(0,-200) animated:NO]; 

Resté 200 para equilibrar con mi barra de navigation. Y funcionó para mí. Dado que se establece en viewDidLoad, y el desplazamiento no se restablece a 0 si el usuario cambia de orientación.

¡Espero eso ayude!

La siguiente solución me ayudó. setText llama UITextView método UITextView setText.

  [self performSelector:@selector(setText) withObject:nil afterDelay:0.f]; 

En iOS7, para desplazarte a la parte superior, debes tener en count las inserciones de contenido. También encontré que era necesario esperar a la siguiente iteración de runloop, como dice Altaveron.

 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ _textView.contentOffset = CGPointMake(-_textView.contentInset.left, -_textView.contentInset.top); }); 

Mi problema similar se resolvió con lo siguiente:

 textView.contentOffset = CGPointMake(0.0, -50) 

En ciertos dispositivos, el textView inicialmente se desplazaría ligeramente hacia abajo. Pero necesitaba que se desplazara a la parte superior.

Por alguna razón, configurarlo en CGPointZero no tuvo ningún efecto. Sin embargo, establecer el desplazamiento y en un gran número negativo hizo el truco.

En iOS8 o versión anterior de iOS, usando textView.contentOffset = CGPointZero . Pero desde iOS 9 creo que necesitamos actualizarlo en viewDidLayoutSubviews()