Я пытаюсь написать приложение, которое использует пользовательские анимации для перехода между контроллерами представления в стеке представления в UINavigationController.
Сейчас я добавляю несколько более поздних версий одного и того же представления, просто чтобыполучить механику и работать правильно.
Мои визуальные цели заключаются в следующем:1. Создайте новый «FirstVC».2. Установите значение альфа [FirstVC view] на 0.3. Установите значение преобразования [Вид FirstVC] на 25% в обоих направлениях (вертикальное и горизонтальное).В блоке анимации я хотел бы выполнить следующее:1. Установите значение преобразования [OutgoingVC view] на 500% в обоих направлениях (увеличивая его в 5 раз).2. Установите альфа-значение [OutgoingVC view] на 0 (постепенно исчезает).3. Установите значение преобразования [Вид FirstVC] на 1 (возвращая его к исходному размеру).4. Установите для альфа-значения [FirstVC view] значение 1 (переход в полноцветный режим).
Чистый эффект этой анимации должен состоять в том, что «верхняя страница» взрывается и затухает, а «следующая»/ нижняя страница "взрывается (только на весь экран) и исчезает. Идея состоит в том, чтобы пользователь провалился сквозь пол или что-то в этом роде.«Идем глубже.»
Я замедлил свою анимацию до интервала 10,0 секунд, чтобы я мог лучше понять, что происходит.
Похоже, что анимация происходит "Исходящие ВК "(т. Е. Вид сверху) верны.Вид снизу, однако, выглядит хорошо (100% размера экрана и альфа = 1,0), но затем он продолжает работать и, кажется, увеличивается до 4x / 5x, а также постепенно уменьшается до альфа 0. После того, какэкран стал полностью черным, новый UIViewController (FirstVC) правильно отображается на экране.
Кто-нибудь видит, почему мой код не работает так, как я хочу?
Спасибо!
Глупый я!Вот код:
- (IBAction)AddNewScreenPressed:(id)sender
{
FirstVC *newViewController = [[FirstVC alloc] init];
UIView *currentView = [self view];
UIView *newView = [newViewController view];
[newView setTransform:CGAffineTransformMakeScale(0.25, 0.25)];
[newView setAlpha:0];
[UIView transitionWithView:[self view]
duration:10.0
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
[[self view] addSubview:newView];
[currentView setAlpha:0];
[currentView setTransform:CGAffineTransformMakeScale(5.0, 5.0)];
[newView setAlpha:1.0];
[newView setTransform:CGAffineTransformMakeScale(1, 1)];
}
completion:^(BOOL finished){
[[self navigationController] pushViewController:newViewController animated:NO];
}
];
}