我有一个CABasicAnimation的viewWillAppear方法的“viewA”。 当我按下viewA中的按钮去viewB然后回到viewA viewWillAppear(of viewA)中的CABasicAnimation可以毫无问题地工作。CABasicAnimation不触发viewWillAppear
但是,当我从viewA切换到viewB,并在viewB中,我通过按下home按钮退出应用程序并返回到应用程序,viewAllViewA中的CABasicAnimation在按下后面后不会触发viewB中的按钮。
有趣的是,我也在viewWillAppear中有一个动画块,在这种情况下触发没有任何问题。所以viewWillAppear方法被触发,它只是CABasicAnimation在辞职和进入应用程序后第一次不起作用。
- (void) viewWillAppear:(BOOL)animated {
CAMediaTimingFunction *customTimingFunction;
customTimingFunction=[CAMediaTimingFunction functionWithControlPoints: 0.5f :0.01f :0.1f : 1.f];
CABasicAnimation *buttonAnimation = [CABasicAnimation animationWithKeyPath:@"transform.translation"];
buttonAnimation.fromValue=[NSValue valueWithCGPoint:CGPointMake(0,-600)];
buttonAnimation.toValue=[NSValue valueWithCGPoint:CGPointMake(0,0)];
buttonAnimation.duration = 1;
buttonAnimation.removedOnCompletion = NO;
buttonAnimation.fillMode = kCAFillModeForwards;
buttonAnimation.timingFunction = customTimingFunction;
[button.layer addAnimation:buttonAnimation forKey:@"transform.translation"];
}
一个解决方案,我发现是把在viewDidAppear的代码。然而,我认为动画触发的时间稍晚一点,因为它在viewDidAppear方法中。理想情况下,我希望它在viewWillAppear。 –