これは私の最初の投稿stackoverflowです。私はiOSデベロッパー初心者で、私はネイティブの英語話者ではないので、私は自分の問題を説明するために最善を尽くします。UIView transitionFromView:toView:アニメーションが機能しません。
は問題:私は、私が使用して一方から他方へ反転したいと私AppDelegateウィンドウに2つのビューが追加されている
:
UIView transitionFromView:toView:
最初のビュー(MainScreenView)は、独自のを持っていViewController
。 MainScreenView .xibファイルには、私のAppDelegateに実装されたメソッド "goShow"を呼び出すアクションを持つボタンがあります。この方法では、UIView transitionFromView:toView:
を使用して2番目のビューに遷移します。これまでのところすべてがうまくいきます。 私の2番目のビュー(スクロールビュー)はAppDelegateでプログラムで宣言され、その中にピクチャの束(picturesViewController)があり、その上にUIPinchGestureRecognizer
があります。
私はジェスチャーレコグナイザーを使用してメインスクリーンビューに戻ります。それが問題の場所です。スクロールビューでピンチジェスチャーを実行すると、MainScreenView.view
がアニメーションの直前に表示されるので、フリップアニメーションが正しく表示されません。
私が使用しているコードは次のとおりです。
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
mainScreen = [[MainScreenViewController alloc] initWithNibName:@"MainScreenViewController" bundle: [NSBundle mainBundle]];
CGRect frame = self.window.bounds;
int pageCount = 10;
scrollView = [[UIScrollView alloc] initWithFrame:frame];
scrollView.contentSize = CGSizeMake(320*pageCount, 480);
scrollView.pagingEnabled = YES;
scrollView.showsHorizontalScrollIndicator = FALSE;
scrollView.showsVerticalScrollIndicator = FALSE;
scrollView.delegate = self;
[...] 'While' adding pictures to de scrollView
UIPinchGestureRecognizer *twoFingerPinch = [[[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(goBackToMain)] autorelease];
[scrollView addGestureRecognizer:twoFingerPinch];
[self.window addSubview: scrollView];
[scrollView setHidden:TRUE];
[self.window addSubview: mainScreen.view];
[self.window makeKeyAndVisible];
return YES;
}
-(void) goShow{
[UIView transitionFromView:mainScreen.view
toView:scrollView
duration:0.5
options:UIViewAnimationOptionTransitionFlipFromRight | UIViewAnimationOptionShowHideTransitionViews
completion:NULL];
[UIView commitAnimations];
}
-(void) goBackToMain {
[UIView transitionFromView:scrollView
toView:mainScreen.view
duration:0.5
options:UIViewAnimationOptionTransitionFlipFromRight | UIViewAnimationOptionShowHideTransitionViews
completion:NULL];
[UIView commitAnimations];
}
私はアドオンを試してみましたが、削除して、ピンチジェスチャーでアプリのクラッシュを持って、正確に同じであるため、私は代わりにaddSubview/removeFromSuperView
の表示/非表示のビューを使用していますアニメーションに失敗したステップ。おそらくそれは同じエラーですが、私はこれの理由を見つけることができません。どんな助けもありがとう。
ありがとうございました。
[...]
UIPinchGestureRecognizer *twoFingerPinch = [[[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(goBackToMain:)] autorelease];
[scrollView addGestureRecognizer:twoFingerPinch];
-(void)goBackToMain:(UIPinchGestureRecognizer *)recognizer {
if (recognizer.state == UIGestureRecognizerStateEnded)
{
[UIView transitionFromView:scrollView
toView:mainScreen.view
duration:0.4
options:UIViewAnimationOptionTransitionFlipFromRight | UIViewAnimationOptionShowHideTransitionViews
completion:nil];
[UIView commitAnimations];
}
たくさん良くなったほとんどの英語のネイティブスピーカーが管理するよりも、説明しました。 +1。 –