UITableView corrigiendo la posición de desplazamiento después de la rotación del dispositivo

Estoy construyendo algo como un lector para un libro. Cuando el usuario gira el teléfono, quiero aumentar el tamaño de la fuente. Estoy usando unUITableView para mostrar trozos de texto.

El problema es que al aumentar el tamaño de fuente aumenta la altura de las filas en mi vista de tabla y si estaba leyendo el párrafo 320 en modo vertical obtengo 280 o algo similar en modo horizontal.

He configurado un oyente de notificación de rotación utilizando este código:

    UIDevice *device = [UIDevice currentDevice];                
    [device beginGeneratingDeviceOrientationNotifications];
    NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
    [nc addObserver:self                                
           selector:@selector(orientationChanged:)
               name:UIDeviceOrientationDidChangeNotification
             object:device];

e intenté guardar el último índice de párrafo antes de la rotación y luego desplazarme hacia abajo después de la rotación, pero parece que no puedo lograr el efecto deseado.

¿Cuál es la mejor manera de manejar este tipo de situación y dónde implemento los estados de rotación "antes" y "después"?

Me gustaría que funcione en iOS 4+.

Respuestas a la pregunta(6)

Su respuesta a la pregunta