Флип-вид Iphone

рассмотрите приведенный ниже код и скажите мне, что я делаю неправильно.

Я хочу перевернуть между двумя UIView.

Так или иначе, когда я откидываюсь от исходного вида, я просто получаю перевернутый вид без анимации. Когда я откидываюсь назад, анимация показывается просто отлично.

Сальто запускается с кнопок на самих представлениях.

- (IBAction)showMoreInfo:(id)sender { UIView *moreInfo = self.flipView; [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:2.0]; [UIView setAnimationBeginsFromCurrentState:NO]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES]; UIView *parent = self.view.superview; [self.view removeFromSuperview]; [parent addSubview:moreInfo]; [UIView commitAnimations]; } - (IBAction)showLessInfo:(id)sender { UIView *lessInfo = self.view; [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:2.0]; [UIView setAnimationBeginsFromCurrentState:NO]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.flipView cache:YES]; UIView *parent = self.flipView.superview; [self.flipView removeFromSuperview]; [parent addSubview:lessInfo]; [UIView commitAnimations]; } 

Вероятно, потому, что вы не используете представление контейнера в качестве вида перехода. См. Документацию по setAnimationTransition: forView: cache:

Если вы хотите изменить внешний вид представления во время перехода, например, перевернуть из одного представления в другое, а затем использовать представление контейнера, экземпляр UIView, следующим образом:

  1. Начните блок анимации.
  2. Установите переход на вид контейнера.
  3. Удалите представление из представления контейнера.
  4. Добавьте новое представление в представление контейнера.
  5. Зафиксируйте блок анимации.

Попробуйте использовать self.view.superview в представлении перехода анимации в showMoreInfo:

Причина, по showLessInfo: работает метод showLessInfo: использует контейнер.

Можете ли вы использовать свой MainWindow (UIWindow) в качестве представления контейнера в качестве UIWindow для UIView?

Также iPhone 3.0 представил транзакцию flip через метод presentModalViewController:

 CustomViewController *vc = [[CustomViewController alloc] initWithNibName:@"CustomViewController" bundle:nil]; vc.delegate = self; // The magic statement. This will flip from right to left. // present the modal view controller then when you dismissModalViewController // it will transition flip from left to right. Simple and elegant. vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self presentModalViewController:vc animated:YES]; [vc release]; 

После iOS 4.0 вы можете перевернуть между представлениями следующим образом:

 [UIView transitionFromView:sourceView toView:destinationView duration:0.35f options:UIViewAnimationOptionTransitionFlipFromRight completion:^(BOOL finished) { NSLog(@"I just flipped!"); }]; 

Как упоминал Джейсон, вам нужно, чтобы это произошло в виде контейнера.

  • Могу ли я появиться в Specific ViewController?
  • Изображение UITextView
  • Как использовать UIPanGestureRecognizer для перемещения объекта? iPhone / IPad
  • Вопросы UIImagePNGR? / Изображения, повернутые на 90 gradleусов
  • Как отключить выделение значка приложения?
  • Как настроить размер содержимого UIScrollView динамически
  • Модель, используемая для открытия магазина, несовместима с той, которая используется для создания магазина
  • UIScrollView: подкачка по горизонтали, прокрутка по вертикали?
  • как увеличить размер шрифта в UIWebView
  • Перерыв на EXC_BAD_ACCESS в XCode?
  • Загрузить изображение в таблицуView из URL-адреса iphone sdk
  • Давайте будем гением компьютера.