0

スワイプジェスチャー(上)と小さなアニメーションで4 VCを切り替えようとしています.xibを使用しています:

-(IBAction)gotonext:(UISwipeGestureRecognizer *)recognizer{
ibasar *ibas =[[ibasar alloc]initWithNibName:@"ibasar" bundle:nil];


[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];

[self.view addSubview:ibas.view];

[UIView commitAnimations];

  }

問題は、最初の VC から 2 番目の VC に切り替えると完了ですが、2 番目から 3 番目に切り替えるとアプリが停止することです。switch に同じコードを使用しているにもかかわらず ! 何か助けてください..事前に感謝します

4

2 に答える 2

0

CATransitionアニメーションを作成できます。現在のビューを押し出しながら、2 つ目のビュー (左から) を画面にスライドさせる方法の例を次に示します。

UIView *theParentView = [self.view superview];

CATransition *animation = [CATransition animation];
[animation setDuration:0.3];
[animation setType:kCATransitionPush];
[animation setSubtype:kCATransitionFromLeft];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];

[theParentView addSubview:yourSecondViewController.view];
[self.view removeFromSuperview];

[[theParentView layer] addAnimation:animation forKey:@"MainView"];
于 2013-01-25T22:09:20.440 に答える
0

まず、アニメートする場合はブロック アニメーションを使用します。古いアニメーション方法ではありません。

次に、サブビューを互いの上に追加するだけです。これはおそらくメモリに負担がかかります。アニメーションの最後にある古いビューを削除して破棄するか、それよりも良いのは、すべてを処理する UINavigation ビュー コントローラーを使用することです。

于 2013-01-25T05:53:28.237 に答える