我有一個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。 –