Mam prostą animację, w której rozwijam nowy widok ze środka starego, podczas gdy ten zanika. Jednak podprzestrzenie tego nowego widoku (przycisk i etykieta) "leci" z dołu po prawej stronie ekranu, gdy nowy widok rozwija się, aby zająć cały ekran. Próbowałem z włączonym i wyłączonym autolayout, i chociaż te dwa scenariusze dają różne wyniki, oboje są w błędzie.Podstrony nie są prawidłowo pozycjonowane podczas animacji
Ustawiona jest prosta, mam dwie niepołączone kontrolerów widoku w serii ujęć, i użyć następującego kodu do animowania Zmień sposób wyświetlania:
-(void)switchViews2:(id)sender {
UIWindow *win = self.view.window;
YellowController *yellow = [self.storyboard instantiateViewControllerWithIdentifier:@"Yellow"];
yellow.view.frame = CGRectMake(0, 0, 1, 1);
yellow.view.center = self.view.center;
[win addSubview:yellow.view];
CGRect frame = self.view.frame;
[UIView animateWithDuration:5 animations:^{
yellow.view.frame = frame;
self.view.alpha = 0;
}
completion:^(BOOL finished) {
[self.view removeFromSuperview];
win.rootViewController = yellow;
}];
}
Pytanie jest, dlaczego nie zatrzymać się gdzie subviews oni mają wejść do ich superwizji, ponieważ animuje.
Dzięki, nie mam dużego doświadczenia z transformacjami, więc staram się zapomnieć o tym sposobie robienia rzeczy. Chyba powinienem przeczytać. – rdelmar