2

我在 tabbarviewcontroller 的第一个视图控制器上有这个动画

- (void)viewDidAppear:(BOOL)animated
{
    [UIView animateWithDuration:4.0 delay:0.0 options:UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveLinear animations:^{
        CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI);
        self.rotatingImage.transform = transform;
    } completion:NULL];
}

它工作得很好,但是当我从标签栏更改视图控制器并返回到第一个视图控制器时,动画会停止。

有一个类似的线程iOS UIView Animation Issue但没有任何解释

4

2 回答 2

5

试试这个:

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    self.rotatingImage.transform = CGAffineTransformIdentity;
    [UIView animateWithDuration:4.0 delay:0.0 options:UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveLinear animations:^{
        CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI);
        self.rotatingImage.transform = transform;
    } completion:NULL];
}

解释很简单……在再次触发动画代码的同时,UIImageView 的变换已经等于动画的最终变换。这类似于将 UIImageView 的 alpha 从 1.0 设置为 1.0 - 没有任何变化。

于 2012-04-21T01:39:17.840 回答
1

使用以下代码并享受...

self.animationyourImageView.transform = CGAffineTransformIdentity;

它将重置您的转换...

希望对你有帮助..

于 2012-04-21T01:27:47.023 回答