Как анимировать View Swap в простом приложении View для iPhone? - PullRequest
3 голосов
/ 12 июня 2009

Иметь простое приложение для iPhone с одним UIViewController и двумя представлениями в одном xib.

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

я хотел бы анимировать обмен представлениями (перевернуть представления).

Все образцы, которые я видел, требуют наличия нескольких контроллеров представления и построения иерархии, но это будет излишним в этом случае, какие-либо предложения?

1 Ответ

9 голосов
/ 12 июня 2009

Убедитесь, что вы объявляете IBOutlets для двух представлений в вашем контроллере представлений. Я предполагаю, что в вашей xib у вас есть «контейнерное представление», занимающее весь экран, и два представления того же размера, которые вы добавляете в этот contatiner ( по одному на каждую сторону вашего «сальто»):

//Inside your .h:
IBOutlet UIView *firstView;
IBOutlet UIView *secondView;

Убедитесь, что при начальной загрузке у вас отображается первый вид:

-(void) viewDidLoad {
  NSAssert(firstView && seconView, @"Whoops:  Are first View and Second View Wired in IB?");
  [self.view addSubview: firstView];  //Lets make sure that the first view is shown
  [secondView removeFromSuperview];  //Lets make sure that the second View is not shown at first
}

Затем вы можете подключить такую ​​кнопку, убедитесь, что кнопка подключена к этому методу в IB:

-(IBAction) flipButtonPressed:(id) sender {
  [UIView beginAnimations:nil context:NULL];
  [UIView setAnimationDuration:0.5];
  if ([firstView superview]) {
     [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];
     [firstView removeFromSuperview];   
     [self.view addSubview:secondView];
  }
  else if ([secondView superview]) {
     [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];
     [secondView removeFromSuperview];  
     [self.view addSubview:firstView];
  }
  [UIView commitAnimations];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...