In the project to use the animation control, such as pause, resume and so on, first look at the code: (very easy to implement)
-(void) Pauselayer: (calayer*) layer{ cftimeinterval pausedtime = [Layer Converttime:cacurrentmediatime () Fromlayer:nil]; Layer.speed = 0.0; Layer.timeoffset = Pausedtime;} -(void) Resumelayer: (calayer*) layer{ cftimeinterval pausedtime = [Layer Timeoffset]; Layer.speed = 1.0; Layer.timeoffset = 0.0; Layer.begintime = 0.0; Cftimeinterval timesincepause = [Layer Converttime:cacurrentmediatime () Fromlayer:nil]-pausedtime; Layer.begintime = Timesincepause;}
If in a view we have added more than one animation, (not a combination of animation), it is also easy to implement the animation pause, restore, the method is to call the above method for each animation layer layer, for example, my method is as follows, I use three individual animation combination effect, is called the following
-(void) stopanimation; { NSLog (@ "Stop animation"); [_customview.layer removeallanimations]; [Self pauselayer:_customview1.layer]; [Self pauselayer:_customview2.layer]; [Self pauselayer:_customview3.layer];} -(void) resumeanimation{ [self resumelayer:_customview1.layer]; [Self resumelayer:_customview2.layer]; [Self resumelayer:_customview3.layer];}