1

タップジェスチャが認識されるたびに実行される次のコードがあります。UIImageViewをタップ位置に移動し、UIImageViewを回転させます。

ただし、翻訳アニメーションは最初のタップでは実行されません。私は何が間違っているのですか?

-(void) onTap:(UITapGestureRecognizer *)tap{

    CGPoint point = [tap locationInView:self.view];



    [UIView animateWithDuration:1.2
                          delay:0
                        options:0
                     animations:^{
                         self.icon.center = point;
                     } completion:^(BOOL finished) {
                         //
                     }];

    [UIView animateWithDuration:1.2
                          delay:0
                        options:0
                     animations:^{
                         self.icon.transform = CGAffineTransformRotate(CGAffineTransformIdentity, M_PI);
                     } completion:^(BOOL finished) {
                         //
                     }];

}
4

1 に答える 1

0

こんにちは、このようなコードが必要です...

.hファイルでuは1つのCGAffineTransform変数を宣言しますinitial...。

これにより、初期変換値を保存するviewDidLoad必要があります...

initial=self.icon.transform;

次に、メソッドをこのタイプに変更する必要があります...

   -(void) onTap:(UITapGestureRecognizer *)tap{

        CGPoint point = [tap locationInView:self.view];



        [UIView animateWithDuration:1.2
                              delay:0
                            options:0
                         animations:^{
                             self.icon.center = point;
                         } completion:^(BOOL finished) {
                             //
                         }];

        [UIView animateWithDuration:1.2
                              delay:0
                            options:0
                         animations:^{

if (self.icon.transform.a  == initial.a) 
                         {
                             self.icon.transform = CGAffineTransformRotate(CGAffineTransformIdentity, M_PI);
                         }
                         else
                         {
                             self.icon.transform = initial;
                         }


                         } completion:^(BOOL finished) {
                             //
                         }];

    }

これは、ロジックを実装するために必要なアイデアです。

于 2012-09-20T12:46:23.413 に答える