【发布时间】:2012-05-14 23:26:44
【问题描述】:
我在“viewA”的 viewWillAppear 方法中有一个 CABasicAnimation。 当我按下 viewA 中的按钮转到 viewB 然后返回 viewA viewWillAppear(viewA)中的 CABasicAnimation 可以正常工作。
但是,当我从 viewA 转到 viewB 时,在 viewB 中我通过按下主页按钮退出应用程序并返回应用程序,在我按下后退按钮后 viewA 的 viewWillAppear 中的 CABasicAnimation 不会触发在视图中 B.
有趣的是,我在 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 中。
标签: objective-c ios viewwillappear cabasicanimation