2015-12-18 56 views
1

我有一个UIImageView添加为子视图。我正在尝试使用变换对它进行动画处理。动画没有,但imageview被正确缩放,它只是不自动反转。难道我做错了什么?动画无法在UIImageView上工作

UIImageView * iv_tap = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"gesture_tap"]]; 
    iv_tap.center = point; 
    iv_tap.tag = 779; 
    iv_tap.hidden = true; 
    [UIView animateWithDuration:2.0 
          delay:.05 
         options: UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveLinear 
        animations:^{ 
         iv_tap.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.8, 1.8); 
        } 
        completion:NULL]; 


    [self addSubview:iv_tap]; 

回答

1

您需要在添加imageViewview后做动画。如果您在addSubView之前执行动画,那么图像视图不在视图中,并且您看不到任何动画。

UIImageView * iv_tap = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"gesture_tap"]]; 
[self.view addSubview:iv_tap]; //this could be self in your case 
iv_tap.tag = 779; 

[UIView animateWithDuration:2.0 delay:0.05 options:UIViewAnimationOptionCurveEaseOut animations:^{ 

    iv_tap.center=self.view.center; 
    iv_tap.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.8, 1.8); 

    [self.view layoutIfNeeded]; //this could be self in your case 

} completion:^(BOOL finished) { 
     //do your stuff when animation is done 
}]; 

如果你是一个子类UIView的,那么你甚至可以把这个drawRect方法:

UIImageView * iv_tap = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"gesture_tap"]]; 
[self addSubview:iv_tap]; 
iv_tap.tag = 779; 

[UIView animateWithDuration:2.0 delay:0.05 options:UIViewAnimationOptionCurveEaseOut animations:^{ 

    iv_tap.center=self.center; 
    iv_tap.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.8, 1.8); 

    [self layoutIfNeeded]; 

} completion:^(BOOL finished) { 
     //do your stuff when animation is done 
}]; 
+0

其实是没有做任何事情。 –

+0

那么应该有一个动画问题! –

+0

调用动画后需要调用 –