2009-03-06 11 views
11

イメージの縮尺を変更し、イメージを変更してからスケールアップしています。それが完了したときにiPhone UIImageViewで縮尺のアニメーションをチェーンするにはどうすればよいですか?

CABasicAnimation* shrink = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; 
shrink.toValue = [NSNumber numberWithDouble:0]; 
shrink.duration = 1; 
    shrink.delegate = self; 
    [myImageView.layer addAnimation:shrink forKey:@"shrink"]; 

はシュリンクを行い、その後、私はイメージを変え、し、成長を開始します。

- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag 
{ 
    myImageView.image = [images objectAtIndex:image]; 
CABasicAnimation* grow = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; 
grow.toValue = CGAffineTransformMakeScale(1,1); 
    grow.delegate = self; 
grow.duration = 1; 
[myImageView.layer addAnimation:grow forKey:@"grow"]; 
} 

これは、シミュレータ上で素晴らしい作品が、デバイス上の、シュリンクが完了したときに、フルサイズの古い画像のフラッシュが得られ、次に拡大画像が新しい画像から始まります。

どのようにそのフラッシュを取り除くことができますか?

(私が試した「NO = removedOnCompletionを;」。そして最初の完了後にスケールダウンサイズに等しいAffineTransformを設定しようとしましたが、多くの幸運を持っていなかった)

任意のヒントを高く評価しました。

キロバイト

編集:

素晴らしいです!次の設定:

shrink.fillMode = kCAFillModeForwards; 
shrink.removedOnCompletion = NO; 

点滅を削除しました。ありがとう、ベン!

答えて

13

アニメーションのfillModekCAFillModeForwardsに設定してみてください。それはアニメーションの終わりのときと同じようにアイテムを残しておく必要があります。

+0

優秀! 以下を設定してください。 \t out.fillMode = kCAFillModeForwards; \t out.removedOnCompletion = NO; 点滅を削除しました。ありがとう、ベン! – KevinButler

0

animationDidStopメソッドで別のCAAnimationを作成しようとしたときに同じ問題が発生しました。 CAKeyframeAnimationを使用することをお勧めします。

関連する問題