2012-11-04 145 views
0

我用下面的代碼,以使過渡暫停catransition和恢復

CATransition *transition = [CATransition animation]; 
transition.duration = duration ; 
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 

transition.type = kCATransitionMoveIn; 

transitioning = YES; 
transition.delegate = self; 

[self.view.layer addAnimation:transition forKey:nil]; 


fromUIView.hidden = YES; 
toUIView.hidden = NO; 

UIImageView *tmp = toUIView; 
toUIView = fromUIView; 
toUIView = tmp; 

,但我希望在過渡進步0.3停下來做些什麼,然後恢復過渡到0.6的進展做一些和恢復。 有可能嗎?

回答

0

我從來沒有用過CATransition,但我認爲你可以用NSTimerGCDperformSelector:withObject:afterDelay:來做到這一點。

例如:

double delayInSeconds = 0.3; 
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); 
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ 
    [self doSomething]; 
}); 

其中doSomething

-(void)doSomething{ 
    [self pauseLayer:thisLayer]; 
    //do something 
    [self resumeLayer:thisLayer]; 
}