如果应用程序输入前台ios,则恢复动画应用

时间:2013-07-09 13:05:22

标签: iphone ios objective-c animation

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

我试过这个:

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

然后在app委托中输入:

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

    }

但是这没用,所以我该怎么做才能恢复动画?

1 个答案:

答案 0 :(得分:0)

您正在创建startViewController的新实例:

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

你应该调用startViewController的现有实例,它可能是这样的:

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

self.startViewController是您保留startViewController实例的属性。