2

ユーザーが検索を実行したときに開始するアニメーション ブロックを設定しました。検索が完了すると、新しいビューがプッシュされます。ユーザーが戻るボタンを選択して検索を再試行するまで、これは正常に機能しますが、アニメーションは開始されません。

[UIView animateWithDuration:0.25
                      delay:0.0
                    options:(UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveLinear)
                 animations:^{

                     _collectionImage.transform = CGAffineTransformMakeRotation(M_PI);

                 }
                 completion:^(BOOL finished){
                     NSLog(@"Done!");
                 }];

アニメーションは、誰かが尋ねる前に回転するディスクにすぎず、プッシュされたビューが読み込まれると完了ブロックが呼び出されます。複数の検索でアニメーション化されない理由を教えていただければ幸いです。

ありがとう。

4

2 に答える 2

5

こんにちはこれはあなたの問題です...

アフィン値xをyに変更します

したがって、変換値はyになり、y=yに等しくなります。

次に、それがどのように機能するか...

最初に変換値を保存し、アニメーションの完了後にアニメーション化して、値を復元する必要があります

viewDidLoadこのようにしてください:

initalTransform=_collectionImage.transform;


[UIView animateWithDuration:0.25
                      delay:0.0
                    options:(UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveLinear)
                 animations:^{

                     _collectionImage.transform = CGAffineTransformMakeRotation(M_PI);

                 }
                 completion:^(BOOL finished){
                     NSLog(@"Done!");
_collectionImage.transform=initalTransform;
                 }];

これを試してください....これは、ロジックとして実装する必要があるアイデアです...

于 2012-09-24T13:35:55.543 に答える
0

CGAffineTransformRotate(<#CGAffineTransform t#>, <#CGFloat angle#>) 現在の変換から回転を開始する必要があります

于 2012-09-24T13:26:56.127 に答える