How to pause or end a UIView animation via the CALayer

转自 http://alldunne.org/2011/09/how-to-pause-or-end-a-uiview-animation-via-the-calayer/

 

-(void)pauseLayer:(CALayer*)layer

 

{

   

    CFTimeInterval paused_time = [layer convertTime:CACurrentMediaTime() fromLayer:nil];

    

    layer.speed = 0.0;

    

    layer.timeOffset = paused_time;

   

}

 

-(void)resumeLayer:(CALayer*)layer

 

{

    

    CFTimeInterval paused_time = [layer timeOffset];

    

    layer.speed = 1.0f;

    

    layer.timeOffset = 0.0f;

    

    layer.beginTime = 0.0f;

    

    CFTimeInterval time_since_pause = [layer convertTime:CACurrentMediaTime() fromLayer:nil] - paused_time;

    

    layer.beginTime = time_since_pause;

    

}

posted @ 2013-01-28 17:27  高笑228  阅读(216)  评论(0编辑  收藏  举报