imageView 的动画

Animation for imageView

我有一张图片,我制作了一个动画:

- (void) spinWithOptions: (UIViewAnimationOptions) options {
    // this spin completes 360 degrees every 2 seconds
    //Spin rotate image
    [UIView animateWithDuration: 5.5f
                          delay: 0.0f
                        options: options
                     animations: ^{
                         self.rotateImage.transform = CGAffineTransformRotate(self.rotateImage.transform, M_PI / 2);
                     }
                     completion: ^(BOOL finished) {
                         if (finished) {
                             if (animating) {
                                 // if flag still set, keep spinning with constant speed
                                 [self spinWithOptions: UIViewAnimationOptionCurveLinear];
                             } else if (options != UIViewAnimationOptionCurveEaseOut) {
                                 // one last spin, with deceleration
                                 [self spinWithOptions: UIViewAnimationOptionCurveEaseOut];
                             }
                         }
                     }];
}

在我看来DidLoad

- (void)viewDidLoad {
    [super viewDidLoad];

        [self spinWithOptions: UIViewAnimationOptionCurveEaseIn];   
 }

我启动应用程序没问题,但如果我进入另一个屏幕然后返回第一个屏幕,动画就会停止。知道我该如何修改吗?

因为viewDidLoad调用了一次,里面的代码编译了一次(tell/suggest我这里说错了)。因此,要在返回视图时启动动画,您需要在 viewWillAppear 方法中调用动画代码。因此,每次您的视图出现时,viewWillAppear 中的代码将再次编译。

片段:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self spinWithOptions: UIViewAnimationOptionCurveEaseIn];
}

viewDidLoad: 仅调用一次,即当视图加载到内存中时。

您需要在 viewWillAppear:viewDidAppear: 回调方法中实现该方法。