首页 > 其他 > 详细

CALayer的上动画的暂停和恢复

时间:2014-02-20 04:33:58      阅读:350      评论:0      收藏:0      [点我收藏+]

CALayer上动画的暂停和恢复


#pragma mark 暂停CALayer的动画
-(
void)pauseLayer:(CALayer*)layer
{
CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime()fromLayer:nil];
// CALayer的时间停止走动
      layer.speed =
 0.0;
// CALayer的时间停留在pausedTime这个时刻
     layer.timeOffset = pausedTime;
}

#pragma mark 恢复CALayer的动画
-(
void)resumeLayer:(CALayer*)layer
{
CFTimeInterval pausedTime = layer.timeOffset;
// 1. CALayer的时间继续行走
      layer.speed =
 1.0;
// 2. 取消上次记录的停留时刻
      layer.timeOffset =
 0.0;
// 3. 取消上次设置的时间
      layer.
beginTime = 0.0;

// 4. 计算暂停的时间(这里也可以用CACurrentMediaTime()-pausedTime)
     CFTimeInterval timeSincePause = [layer convertTime:CACurrentMediaTime() fromLayer:
nil] - pausedTime;
// 5. 设置相对于父坐标系的开始时间(往后退timeSincePause)
      layer.beginTime = timeSincePause;
}
chenyilong. Powered by Postach.io

CALayer的上动画的暂停和恢复

原文:http://www.cnblogs.com/ChenYilong/p/3556350.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!