我在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];
}
它工作得很好但是当我从tabbar更改viewcontroller并返回到第一个viewcontroller动画时停止。
有一个类似的帖子iOS UIView Animation Issue,但没有任何解释
答案 0 :(得分: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的动画 - 没有任何变化。
答案 1 :(得分:1)
使用以下代码并享受......
self.animationyourImageView.transform = CGAffineTransformIdentity;
它会重置您的转换......
希望,这会对你有帮助..