0

我在“viewA”的 viewWillAppear 方法中有一个 CABasicAnimation。当我按下 viewA 中的按钮转到 viewB 然后返回 viewA 时, viewWillAppear (viewA)中的 CABasicAnimation 可以正常工作。

但是,当我从 viewA 转到 viewB 时,在 viewB 中我通过按下主页按钮退出应用程序并返回应用程序,在我按下 viewB 中的后退按钮后,viewA 的 viewWillAppear 中的 CABasicAnimation 不会触发。

有趣的是,我在 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"];

}
4

2 回答 2

3

我找到了解决方案。如果我每次都会触发它change buttonAnimation.removedOnCompletion = NO;change buttonAnimation.removedOnCompletion = YES;即使在辞职并进入应用程序之后。

于 2012-05-06T08:09:43.397 回答
0

我遇到了同样的情况,动画没有开始。使用此处的代码: https ://github.com/akaabe/HamburgerButton/blob/master/HamburBtn.m 并调用 viewDidAppear toggleAnimation。唯一对我有用的情况是延迟使用 performSelector。

于 2015-03-08T19:57:25.620 回答