iIOS之動畫中止

- (void)rotateView
{
    CABasicAnimation *rotationAnimation;
    rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
    rotationAnimation.toValue = [NSNumber numberWithFloat:M_PI_4];
    rotationAnimation.duration = 0.3;
    rotationAnimation.removedOnCompletion = NO;
    rotationAnimation.fillMode = kCAFillModeForwards;
[self.workItem.icomImgView.layer addAnimation:rotationAnimation forKey:
@"rotationAnimation"];
}
removedOnCompletion 動畫完畢是否移除,默認是YES;
fillMode的做用就是決定當前對象過了非active時間段的行爲. 好比動畫開始以前,動畫結束以後 kCAFillModeRemoved 這個是默認值,也就是說當動畫開始前和動畫結束後,動畫對layer都沒有影響,動畫結束後,layer會恢復到以前的狀態 kCAFillModeForwards 當動畫結束後,layer會一直保持着動畫最後的狀態 kCAFillModeBackwards 這個和kCAFillModeForwards是相對的,就是在動畫開始前,你只要將動畫加入了一個layer,layer便當即進入動畫的初始狀態並等待動畫開始.你能夠這樣設定測試代碼,將一個動畫加入一個layer的時候延遲5秒執行.而後就會發如今動畫沒有開始的時候,只要動畫被加入了layer,layer便處於動畫初始狀態 kCAFillModeBoth 理解了上面兩個,這個就很好理解了,這個其實就是上面兩個的合成.動畫加入後開始以前,layer便處於動畫初始狀態,動畫結束後layer保持動畫最後的狀態.
相關文章
相關標籤/搜索