Posición de desplazamiento incorrecta con estimatedHeightForRowAtIndexPath

Estoy construyendo un chat con UITableView . Naturalmente, las alturas de fila de cada celda de post de chat variarán ampliamente. He calculado correctamente el alto de fila para cada celda y la Vista de tabla funciona como debería.

Sin embargo, quiero implementar estimatedHeightForRowAtIndexPath: para acelerar el performance en el caso de muchos posts. El problema con esto es que afecta el comportamiento de scrollToRowAtIndexPath:atScrollPosition:Animated: de scrollToRowAtIndexPath:atScrollPosition:Animated:

En mi opinión, viewWillAppear método del ciclo de vida. Le digo a la Vista de tabla que se desplace hacia abajo hasta el último post (es decir, el post inferior), que funciona bien si no uso estimatedHeightForRowAtIndexPath: pero tan pronto como lo hago me parece que solo el valor Este método devuelto se usa para calcular la position de desplazamiento y termino en la position incorrecta.

¿Es posible beneficiarse de las ganancias de eficiencia del uso de estimatedHeightForRowAtIndexPath: sin que esto afecte al comportamiento de desplazamiento?

UITableView es una subclass de UIScrollView por lo que el método

 - (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated 

de UIScrollView puede ayudarte a lograr lo que quieres