0

我有一个小问题,当我的应用程序进入后台时,动画停止并且当应用程序回到前台时不恢复。

我试过这个:

@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];
}

然后在应用程序委托中我输入了这个:

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

    }

但这不起作用,那么我应该怎么做才能恢复动画呢?

4

1 回答 1

0

您正在创建一个新实例startViewController

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

您应该调用 的现有实例startViewController,它可能类似于:

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

其中self.startViewController是您保留startViewController.

于 2013-07-09T13:18:15.777 回答