Mam aplikację na iPada i rysuję główny widok za pomocą OpenGL i chcę animować moją własną zmianę po obróceniu urządzenia.Niestandardowa animacja zmiany orientacji interfejsu iOS z OpenGL
Należy pamiętać, że ta aplikacja tylko losuje, nie jest ciągle animowana. Również moja scena to (bardzo złożony) rysunek 2D, a nie 3D. Chcę po prostu obracać się wokół środka wyświetlacza podczas zmiany orientacji urządzenia, zachowując prawidłowy współczynnik proporcji.
W tej chwili mam tylko następujący kod:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
// nothing yet
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
IMMainView *mv = (IMMainView *)self.view;
[mv createRenderbuffer];
[mv drawView];
}
Właśnie ponownie utworzyć bufor renderowania OpenGL, aby dopasować nową szerokość i wysokość, gdy obrót zakończy.
Domyślne zachowanie systemu iOS wydaje się obracać widok, ale także rozciąga się dziwnie wraz ze zmianą współczynnika kształtu.
Mogę animować parametry rysowania, aby coś lepiej wyglądało podczas przejścia, ale nie rozumiem (1) jak zatrzymać animację mojej warstwy iOS (2) jak ustawić pętlę animacji z tych wywołań metod pasujące do animacji iOS.
Na przykład podczas animacji, czy aktualna szerokość i wysokość widoku zmienia się progresywnie?
Ewentualnym problemem jest także pytanie, kiedy ponownie utworzyć bufor renderowania, ponieważ jeśli bufor OpenGL nie pasuje do granic widoku iOS, proporcje pikseli nie są poprawne, a rysunek wygląda źle.
Każda pomoc zostanie doceniona.
OK Wydaje mi się, że rozumiem część odpowiedzi na moje pytanie, a mianowicie, że muszę po prostu nadal prezentować bufor renderowania podczas zmiany orientacji, aby przejąć kontrolę nad tym, co jest pokazane w domyślnym przypadku. W chwili obecnej przedstawiam go tylko wtedy, gdy muszę zmienić zawartość widoku w zależności od zmiany interfejsu użytkownika. – Robotbugs