UIWebView não carregar completamente, altura varia

Eu tenho um controlador de exibição contendo alguns rótulos e um UIWebView que está carregando alguns html nele. Todos esses rótulos e UIWebView são subvisualizações de um UIScrollView. Desativei a rolagem do UIWebView para que os rótulos e o UIWebView rolem todos juntos dentro do UIScrollView.

Então eu encontrei o tamanho do conteúdo dentro do UiWebView, alterei o tamanho do UIWebView de acordo com o tamanho do conteúdo e, em seguida, configurei o tamanho da visualização de rolagem para o tamanho da visualização da web. Isto é como eu fiz isso adicionando o seguinte código no 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 eu estou usando o NSLog para ver o tamanho do conteúdo do webview, notei que ele dá uma altura diferente para o mesmo conteúdo. Por exemplo, se eu abrir o controlador de exibição pela primeira vez, ele mostrará a altura igual a 915.0 e quando eu voltar na navegação e voltar a esse controlador de exibição, o log mostrará o tamanho como 1012.0.

Eu acredito que pode ser devido às imagens carregando no conteúdo html. Alguém pode dizer como posso corrigi-lo para mostrar a altura certa na primeira vez? Obrigado!

ATUALIZAR: Se eu usar uma estratégia diferente usando javascript, eu já tentei usar o seguinte 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 dá a altura certa toda vez no log que é exatamente o que eu quero, mas toda a webview é deslocada um pouco para cima, bloqueando todos os rótulos acima dela. Estou fazendo algo errado e como consertar isso? Obrigado!

questionAnswers(3)

yourAnswerToTheQuestion