簡體   English   中英

CABasicAnimation未在viewWillAppear中觸發

[英]CABasicAnimation doesn't trigger in viewWillAppear

我在“ viewA”的viewWillAppear方法中有一個CABasicAnimation。 當我按下viewA中的按鈕轉到viewB,然后返回到viewA時,(viewA的)viewWillAppear中的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"];

}

我找到了解決方案。 如果我change buttonAnimation.removedOnCompletion = NO; change buttonAnimation.removedOnCompletion = YES; 它將每次觸發。 即使辭職並進入應用程序。

我遇到相同的情況,動畫無法開始。 從此處使用代碼: https : //github.com/akaabe/HamburgerButton/blob/master/HamburBtn.m並調用viewDidAppear toggleAnimation。 對我有用的唯一情況是延遲使用performSelector。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM