Animate infinite scrolling of an image in a seamle

2019-09-06 17:40发布

问题:

Possible Duplicate:
Animate infinite scrolling of an image in a seamless loop

I have the following code that run an endless loop of the same image

the problem is when the user minimize the application, and get back to it, the image stop animating and it totally disappear

Here is my code:

-(void)cloudScroll
{
UIImage *cloudsImage = [UIImage imageNamed:@"TitleClouds.png"];
UIColor *cloudPattern = [UIColor colorWithPatternImage:cloudsImage];
CALayer *cloud = [CALayer layer];
cloud.backgroundColor = cloudPattern.CGColor;
cloud.transform = CATransform3DMakeScale(1, -1, 1);
cloud.anchorPoint = CGPointMake(0, 1);
CGSize viewSize = self.cloudsImageView.bounds.size;
cloud.frame = CGRectMake(0, 0, cloudsImage.size.width + viewSize.width, viewSize.height);
[self.cloudsImageView.layer addSublayer:cloud];

CGPoint startPoint = CGPointZero;
CGPoint endPoint = CGPointMake(-cloudsImage.size.width, 0);
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
animation.fromValue = [NSValue valueWithCGPoint:startPoint];
animation.toValue = [NSValue valueWithCGPoint:endPoint];
animation.repeatCount = HUGE_VALF;
animation.duration = 3.0;
[cloud addAnimation:animation forKey:@"position"];
}

EDIT: possible duplicate of Animate infinite scrolling of an image in a seamless loop

回答1:

Look at UIApplicationDelegate Protocol Reference. In the discussion part of method called applicationDidEnterBackground: you can find answer on your question.

you can try re-firing your animation upon re-opening of the application