私はカスタムアニメーションを使用してUINavigationControllerのビュースタック内のビューコントローラ間を移動するアプリケーションを作成しようとしています。UIView transitionWithViewファンキーな結果
今、私は同じビューの複数のラスターを追加しています。ちょうどメカを起動して正しく動作させるためです。
視覚的な目標は次のとおりです。
1.新しい「FirstVC」を作成します。
2. [FirstVCビュー]のアルファ値を0に設定します。
3. [FirstVCビュー]の変換値を両方向で25%(水平&)に設定します。
アニメーションブロックでは、
を入力します。1. [OutgoingVCビュー]の変換値を両方向に500%に設定します(5倍に吹きます)。
2. [OutgoingVCビュー]のアルファ値を0に設定します(何もフェードアウトしません)。
3. [FirstVCビュー]の変換値を1に設定します(元のサイズに戻します)。 4. [FirstVCビュー]のアルファ値を1に設定します(フルカラーにフェードイン)。
このアニメーションのネットエフェクトは、「次のページ/下のページ」が吹き上がって(フルスクリーンのみ)、フェードインしている間、「トップページ」が爆発してフェードアウトすることです。床や何かを介して。 「もっと深く」
私はアニメーションを10.0秒まで遅くしていますので、何が起こっているのかをよりよく把握できます。
「OutgoingVC」(すなわち、上面図)で行われるアニメーションが正しいように見えます。しかし、ボトムビューは画面サイズの100%とアルファ= 1.0のようにうまくいくように見えますが、それは4x/5xのいずれかに吹き飛ばされ、アルファ0にフェードアウトして見えます。画面が完全に黒くなったら、新しいUIViewController(FirstVC)が画面に正しく表示されます。
私のコードが私が望むように動作しない理由は誰にも見えますか?
ありがとうございます!
愚かな私!ここでは、コードです:
- (IBAction)AddNewScreenPressed:(id)sender
{
FirstVC *newViewController = [[FirstVC alloc] init];
UIView *currentView = [self view];
UIView *newView = [newViewController view];
[newView setTransform:CGAffineTransformMakeScale(0.25, 0.25)];
[newView setAlpha:0];
[UIView transitionWithView:[self view]
duration:10.0
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
[[self view] addSubview:newView];
[currentView setAlpha:0];
[currentView setTransform:CGAffineTransformMakeScale(5.0, 5.0)];
[newView setAlpha:1.0];
[newView setTransform:CGAffineTransformMakeScale(1, 1)];
}
completion:^(BOOL finished){
[[self navigationController] pushViewController:newViewController animated:NO];
}
];
}
これの最終的な解決策は、iOS 5 Betaでセグを使用することでした。私は今はもっとコメントすることができないとは思っていませんが、あなたのEDITは私が実装したものに近い理論です。したがって、あなたの答えは受け入れられます! – mbm29414