不将动画重新启动到根控制器



我有一个从第一个控制器开始的动画,当我从另一个控制器调用这个控制器时,动画不会开始。这是我的HomeController.m:

//
//  HomeController.m
//  /
#import "HomeController.h"
#import <AVFoundation/AVFoundation.h>
#import <QuartzCore/QuartzCore.h>
#import "HomeController.h"
#include <AudioToolbox/AudioToolbox.h>
@interface HomeController (){
}
@property (strong, nonatomic) IBOutlet UILabel *accendi;
// create the label animated
@property (strong, nonatomic) IBOutlet UIImageView *arrow;
// create the image animated
@end
@implementation HomeController

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

-(void) viewDidAppear:(BOOL)animated {
[super viewDidAppear:(BOOL)animated];
[self frecciaanimata];
}
-(void) frecciaanimata {
    CGRect arrowFrame = self.arrow.frame;
    arrowFrame.origin.x = arrowFrame.size.height;
    CGRect accendiFrame = self.accendi.frame;
    accendiFrame.origin.x = accendiFrame.size.height;
    [UIView animateWithDuration:0.7
                          delay:1.2
                        options: UIViewAnimationOptionRepeat|UIViewAnimationOptionAutoreverse
                     animations:^{
                         _arrow.frame = CGRectMake(140, 244, 14, 28);
                         _accendi.frame = CGRectMake(80, 247, 63, 21);
                     }
                     completion:^(BOOL finished){
                         NSLog(@"Done!");
//create animation block
                     }];
 }

// end of animation block
@end

当另一个控制器调用此控制器(HomeController)时,我可以通过按下按钮来启动动画吗?

[self frecciaanimata];更改为:

[self performSelector:@selector(frecciaanimata) withObject:nil afterDelay:0.01];

更新:

对于最近在后台反击时处理动画的请求,请执行以下操作:

在您的ViewDidLoad方法中:

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(someMethod)
                                             name:UIApplicationDidBecomeActiveNotification object:nil];

然后添加someMethod,如下所示:

-(void) someMethod{
    [self performSelector:@selector(frecciaanimata) withObject:nil afterDelay:0.01];
}

相关内容

最新更新