0

imageViewがどんどん小さくなって透明になって消えていくアニメーションを作りたいです。以下のコードを試してみましたが、動作しません。実行すると、0.01 サイズから元のサイズに大きくなります。問題がどこにあるのかわかりません。

どうもありがとうございました!

[UIView animationWithDuration:2 animations:^{
[imageview setTransform:(CGAffineTransformMakeScale(0.01,0.01))];
[imageview setAlpha:0];
}
completion:^(BOOL finished){
[imageview removeFromSuperview];
}];
4

2 に答える 2

0

このコードを試してください:

[UIView animationWithDuration:2 animations:^{
CGAffineTransform *transform =  CGAffineTransformScale(imageView.transform, 0.01, 0.01);
[imageview setTransform:transform];
[imageview setAlpha:0];
}
completion:^(BOOL finished){
[imageview removeFromSuperview];
}];

これにより、既存の imageView 変換が考慮されます。(すでにこの imageView に変換を適用している可能性はありますか?)

他に試すことができるのはUIViewAnimationOptionBeginFromCurrentState 、アニメーション メソッドのオプションとして: を追加することです。使用する必要があります:

+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion{

}
于 2012-12-21T08:06:31.553 に答える
0

実際、あなたのメソッド名は間違っているようです。正しい方法はanimateWithDuration です

[UIView animateWithDuration:2 animations:^{
于 2012-12-21T08:31:55.680 に答える