Flip анимация, когда контроллер нажал на iPhone
Я осмотрелся и не нашел то, что искал.
Есть ли способ получить флип-анимацию при нажатии контроллера вида?
Я читал, что вы можете изменить анимацию, используя modal view controller, но AFAIK анимация для модального представления - снизу вверх, и это не то, что я ищу. Есть ли способ получить флип-анимацию?
Ответы
Ответ 1
Для модально представленных контроллеров представлений вы можете изменить анимацию с помощью свойства modalTransitionStyle
. AFAIK, нет возможности изменить анимацию push-контроллера навигации (кроме восстановления UINavigationController с нуля).
Ответ 2
что-то вроде этого должно работать
[UIView beginAnimations:@"animation" context:nil];
[self.navigationController pushViewController: yourviewcontroller animated:NO];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO];
[UIView commitAnimations];
не забудьте установить анимированный NO при вызове pushViewController
Ответ 3
Это также работает.. для iOS 4.0 and greater
[UIView transitionWithView:self.navigationController.view duration:0.8 options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^(void) {
BOOL oldState = [UIView areAnimationsEnabled];
[UIView setAnimationsEnabled:NO];
[self.navigationController pushViewController:viewController animated:YES];
[UIView setAnimationsEnabled:oldState];
}
completion:nil];
Ответ 4
- (void)viewWillDisappear:(BOOL)animated {
[UIView beginAnimations:@"animation2" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration: 0.7];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO];
[UIView commitAnimations]; }
в новом диспетчере представлений заставит его откидываться назад таким же образом (вместо того, чтобы сдвинуться влево), когда нажата кнопка "Назад" на панели инструментов - убедитесь, что анимация включена здесь, например, если вы создали пользовательскую кнопку, чтобы стек, используйте:
- (void) backToPrevious: (id) sender
{
//[self.navigationController popViewControllerAnimated:YES];
[self dismissModalViewControllerAnimated:YES];
}