UIWebView no se carga completamente, la altura varía

Tengo un controlador de vista que contiene algunas etiquetas y un UIWebView que está cargando algunos html en él. Todas estas etiquetas y UIWebView son subvistas de un UIScrollView. He deshabilitado el desplazamiento de UIWebView para que las etiquetas y UIWebView se desplacen todos juntos dentro del UIScrollView.

Luego tomé el tamaño del contenido dentro de UiWebView, cambié el tamaño de UIWebView de acuerdo con el tamaño del contenido y luego configuré el tamaño de la vista de desplazamiento al tamaño de la vista web. Así es como lo hice al agregar el siguiente código en webViewDidFinishLoad:

CGRect frame = myWebView.frame;
frame.size.height = 1;
myWebView.frame = frame;
CGSize fittingSize = [myWebView sizeThatFits:CGSizeZero];
frame.size = fittingSize;
myWebView.frame = frame;

NSLog(@"size: %f, %f", fittingSize.width, fittingSize.height);

mainScrollView.contentSize = myWebView.bounds.size; 

Como uso NSLog para ver el tamaño del contenido de webview, noté que le da una altura diferente para el mismo contenido. Por ejemplo, si abro el controlador de vista la primera vez, muestra la altura igual a 915.0 y cuando retrocedo en la navegación y vuelvo a este controlador de vista, el registro mostrará que el tamaño es 1012.0.

Creo que podría deberse a la carga de imágenes en el contenido html. ¿Alguien puede decir cómo puedo arreglarlo para mostrar la altura correcta la primera vez? ¡Gracias!

ACTUALIZAR: Si utilizo una estrategia diferente usando javascript, ya he intentado usar el siguiente código:

CGRect oldBounds = [[self myWebView] bounds];
CGFloat height = [[myWebView stringByEvaluatingJavaScriptFromString:@"document.height"] floatValue];
NSLog(@"NEW HEIGHT %f", height);
[myWebView setBounds:CGRectMake(oldBounds.origin.x, oldBounds.origin.y, oldBounds.size.width, height)];
mainScrollView.contentSize = myWebView.bounds.size;

Este código me da la altura correcta cada vez que estoy en el registro, que es exactamente lo que quiero, pero toda la vista web se desplaza un poco hacia arriba, bloqueando todas las etiquetas que están por encima. ¿Estoy haciendo algo mal y cómo solucionarlo? ¡Gracias!

Respuestas a la pregunta(3)

Su respuesta a la pregunta