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 文件中你声明一个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 回答