0

画像のスライドショーを表示する必要があります。しかし、ある時点では、現在の画像と以前の画像しか知りません (メモリ管理のため)。次の画像をアニメーション (UIViewAnimationOptionTransitionCurlUp) で表示する必要があります。そして、アニメーションフレームを設定したいです(したがって、1つの画像が2より大きい、またはその逆の場合、アニメーションフレームは2つの画像の中で最大でなければなりません)。したがって、画面全体ではなく、画面の一部に UIViewAnimationOptionTransitionCurlUp が表示されるはずです。これが私のコードです:

slideShowView.frame = [self getBiggestFrame];
slideShowView.center = [self getCenter];
[UIView transitionWithView:slideShowView
                  duration:4.0
                   options:UIViewAnimationOptionTransitionCrossDissolve
                animations:^
                { 
                    [prevImageView removeFromSuperview]; 
                    [slideShowView addSubview:nowImageView]; 
                }
                completion:NULL];

アニメーション フレームは、slideShowView.frame に依存していると思います。同じサイズの画像をアニメーション化すると、すべて問題ありません。しかし、2 番目の画像の幅が最初の画像の幅よりも大きい場合、アニメーション全体で最初の画像が表示され、アニメーションの後にのみ最初の画像が消えます。 ここに画像の説明を入力

画像では、大きな画像の前に青い画像が見えます。しかし、この画像ではアニメーションはほぼ完成しており、青い画像は消えているはずです。これが問題です。アニメーションの長さを 10 に設定します。2 番目の画像がアニメーションなしの最初の画像の後ろに表示されることがわかります。そして、これらすべてが2番目の画像にアニメーション化されます ここに画像の説明を入力

ここに画像の説明を入力

4

0 に答える 0