1

と呼ばれる、InterfaceBuilderの2つのインスタンスに接続された2つのIBOutlet変数があります。UIViewblankViewfadedBGViewViewController

トランジションを使用してblankViewインスタンスがフェードインし、2つが現在の位置(同じ位置にある)から同時に0,0に変換(移動)できるように、このコードを設定するにはどうすればよいですか?fadedBGViewUIViewAnimationOptionTransitionCrossDissolveUIViews

何が起こっているのかというと、フェードが発生した後、fadedBGViewビューが突然0,0に移動します。

つまり、最初のUIViewフェードを2番目のフェードに変えながら、同時に画面を上に移動させたいのです。

うまくいけば、これは答えるのに十分明確です。ベスト...SL

[UIView transitionFromView:blankView
                    toView:fadedBGView
                    duration:1.0
                    options:UIViewAnimationOptionTransitionCrossDissolve
                    completion:^(BOOL finished) {
                    [blankView removeFromSuperview];
                    }];

[UIView commitAnimations];

CGRect frame = fadedBGView.frame;
frame.origin.x = 0;
frame.origin.y = 0;
[UIView animateWithDuration:1.0 animations:^{
    NSLog(@"UIView Transition/Move Called");
    fadedBGView.frame = frame;
}];
4

2 に答える 2

1

iOS 4以降では、ブロックベースのアニメーションが提供されています。これは、コードですでに使用されています。

+[UIView animateWithDuration:animations:];
+[UIView animateWithDuration:animations:completion:];

アニメーションブロック内で、複数の宛先値を設定できます。アニメート可能なプロパティのリファレンスについては、AppleのUIViewドキュメントを参照してください。したがって、1つのブロック内で、フレームとビューのアルファ(透明度)値を変更できます。クロスディゾルブアニメーションがどのように機能するかはわかりませんが、1つのビューが0から1になり、別のビューが1から0になる場合は、簡単に実装できます。

于 2012-11-07T23:15:35.407 に答える
1

それ以外の

UIViewAnimationOptionTransitionCrossDissolve

使用する

UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionAllowAnimatedContent

UIViewAnimationOptionAllowAnimatedContentオプションを使用すると、移行中に追加のアニメーションを使用できます。fadedBGView開始フレームが正しいことを確認してください。

于 2012-11-07T23:32:44.010 に答える