Come catturare lo screenshot della vista corrente e riutilizzarlo nel codice? (iPhone SDK)

Sto cercando di passare da un UIView a un altro, quando l’utente ruota il dispositivo. Questo, di per sé, non è difficile. Tuttavia, poiché visualizzo contenuti completamente diversi dopo la rotazione, l’animazione predefinita fornita da UIKit (ruotando la vista attualmente visualizzata) è inappropriata concettualmente.

La semplice distriggerszione dell’animazione e la sostituzione improvvisa delle viste è tollerabile, ma è molto al di sotto dello smalto che sto creando nel resto dell’app. Quello che preferirei fare è questo:

Quando viene chiamato shouldAutorotateToInterfaceOrientation: mi piacerebbe catturare un’istantanea della vista opaca, uno screenshot se lo si desidera, della vista utente prima della rotazione. Quindi, dopo che la rotazione è completata e il sistema ha applicato la vista trasforma ecc., Posso mostrare la vista dell’istantanea che ho salvato e animare una transizione della mia scelta alla mia nuova vista. Dopo che è stato completato, posso rilasciare la mia istantanea e andare avanti.

C’è un modo per farlo che non sia costoso?

L’unica altra opzione che posso pensare è di restituire NO su tutti gli orientamenti diversi da quello predefinito, e quindi reactjs applicando le mie animazioni e le mie trasformazioni. Preferirei usare il sistema per farlo, tuttavia, poiché ritengo che probabilmente farlo da solo, potrebbe causare un comportamento “non definito” della tastiera nella vista ruotata manualmente, ecc.

Pensieri?