2013-07-09 29 views
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]; 

    } 

但这并没有工作,所以我应该怎么做才能恢复动画?

+0

http://stackoverflow.com/questions/7568567/restoring-animation-where-it-left-off-when-app-resumes-from-background – stosha

回答

0

您是创建startViewController的一个新实例:

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

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

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

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

+0

对不起,它没有工作 – Thymen

+0

哪部分?你确定你保持对'startViewController'实例的正确引用? – rckoenes