0

I have a small problem, when my application enter the background the animation stop and don't resume when the application goes back to the foreground.

I have tried this:

@implementation startViewController

-(void)animation {

    UIImage*img1 = [UIImage imageNamed:@"wolk2.png"];
    image1 = [[UIImageView alloc]initWithImage:img1];
    image1.frame = CGRectMake(0, 0, 400, 200);

    UIImage*img2= [UIImage imageNamed:@"wolk1.png"];
    image2 = [[UIImageView alloc]initWithImage:img2];
    image2.frame = CGRectMake(0, 0, 220, 100);

    [self.imageView addSubview:image1];
    [self.imageView addSubview:image2];
    [[self imageView]sendSubviewToBack:image1];
    [[self imageView]sendSubviewToBack:image2];



    CGFloat a = (CGFloat) (100);
    CGFloat b = (CGFloat) (100);
    CGFloat a1 = (CGFloat) (50);
    CGFloat b1 = (CGFloat) (350);
    CGPoint startPointOne=CGPointMake(a,b);
    CGPoint startPointTwo=CGPointMake(a1,b1);
    image1.center=startPointOne;
    image2.center=startPointTwo;

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:20];
    [UIView setAnimationCurve: UIViewAnimationCurveLinear];
    [UIView setAnimationRepeatAutoreverses:YES];
    [UIView setAnimationRepeatCount:100000];

    CGFloat c = (CGFloat) (700);
    CGFloat d = (CGFloat) (100);
    CGPoint endPointOne=CGPointMake(c,d);
    image1.center = endPointOne;


    [UIView commitAnimations];

    [UIView beginAnimations:Nil context:NULL];
    [UIView setAnimationDuration:30];
    [UIView setAnimationCurve: UIViewAnimationCurveLinear];
    [UIView setAnimationRepeatAutoreverses:YES];
    [UIView setAnimationRepeatCount:100000];

    CGFloat c1 = (CGFloat) (650);
    CGFloat d1 = (CGFloat) (350);
    CGPoint endPointTwo=CGPointMake(c1,d1);
    image2.center = endPointTwo;
    [UIView commitAnimations];
}

Then in the app delegate I have enter this:

 - (void)applicationDidBecomeActive:(UIApplication *)application
    {
 start = [[startViewController alloc]init];
        [start animation];

    }

But this didn't work, so what should I do to resume the animation?

Thymen
  • 220
  • 3
  • 10
  • http://stackoverflow.com/questions/7568567/restoring-animation-where-it-left-off-when-app-resumes-from-background – stosha Jul 09 '13 at 13:22

1 Answers1

0

You are create an new instance of your startViewController:

 - (void)applicationDidBecomeActive:(UIApplication *)application {
      start = [[startViewController alloc]init];
      [start animation];
 }

You should call the existing instance of the startViewController, it could be something like:

- (void)applicationDidBecomeActive:(UIApplication *)application {
  [self.startViewController animation];
}

Where the self.startViewController is a property where you retain the instance of your startViewController.

rckoenes
  • 69,092
  • 8
  • 134
  • 166
  • Which part? You are sure that you are keeping the correct reference to the instance of `startViewController`? – rckoenes Jul 09 '13 at 13:57