У меня есть простая анимация, в которой я расширяю новый вид из центра старого, а тот исчезает. Однако подпредставления этого нового представления (кнопка и метка) «вылетают» из нижней правой части экрана, когда это новое представление расширяется и занимает весь экран. Я пробовал с включенным автомакетом и без него, и хотя два сценария дают разные результаты, оба они неверны.
Настройка проста, у меня есть два несвязанных контроллера представления в раскадровке, и я использую следующий код для анимации изменения представления:
-(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;
}];
}
Вопрос в том, почему подпредставления не остаются там, где они должны быть внутри своего суперпредставления, когда оно анимируется.