暂停 继续动画实现方法
2017-07-31 11:26
232 查看
- (void)stopAnimationOfLayer:(CALayer *)layer{
//取得暂停时当前时间
CFTimeInterval pause = [layer
convertTime:CACurrentMediaTime()
fromLayer:nil];
//速度跟开始时间置为0
layer.speed =
0.0;
layer.beginTime =
0.0;
layer.timeOffset = pause;
}
- (void)continueAnimationWithLayer:(CALayer *)layer{
CFTimeInterval pausedTime = [layer
timeOffset];
layer.speed =
1.0;
// 让CALayer的时间继续行走
layer.timeOffset =
0.0; //
取消上次记录的停留时刻
layer.beginTime =
0.0; //
取消上次设置的时间
// 计算暂停的时间(这里用CACurrentMediaTime()-pausedTime也是一样的)
CFTimeInterval timeSincePause = [layer
convertTime:CACurrentMediaTime()
fromLayer:nil] - pausedTime;
// 设置相对于父坐标系的开始时间(往后退timeSincePause)
layer.beginTime = timeSincePause;
}
//取得暂停时当前时间
CFTimeInterval pause = [layer
convertTime:CACurrentMediaTime()
fromLayer:nil];
//速度跟开始时间置为0
layer.speed =
0.0;
layer.beginTime =
0.0;
layer.timeOffset = pause;
}
- (void)continueAnimationWithLayer:(CALayer *)layer{
CFTimeInterval pausedTime = [layer
timeOffset];
layer.speed =
1.0;
// 让CALayer的时间继续行走
layer.timeOffset =
0.0; //
取消上次记录的停留时刻
layer.beginTime =
0.0; //
取消上次设置的时间
// 计算暂停的时间(这里用CACurrentMediaTime()-pausedTime也是一样的)
CFTimeInterval timeSincePause = [layer
convertTime:CACurrentMediaTime()
fromLayer:nil] - pausedTime;
// 设置相对于父坐标系的开始时间(往后退timeSincePause)
layer.beginTime = timeSincePause;
}
相关文章推荐
- Swift使用CoreAnimation实现旋转动画,包括暂停旋转和继续旋转方法
- uinity Animator 和Animation的正播,捯播,暂停动画实现方法(测试)
- 使用service的startservice 和bindservice方法实现音乐的播放、暂停、继续
- iOS开发 实现动画的暂停和继续播放
- JavaScript暂停和继续定时器的实现方法
- Java线程暂停一段时间之后继续执行的实现方法
- 暂停和播放CSS3动画的两种实现方法
- iPhone的动画效果类型及实现方法
- objective-C 中两种实现动画的方法
- 实现 iPhone 游戏暂停功能的方法
- iphone的动画效果类型及实现方法
- C++实现的可以安全的暂停、继续、停止线程的封装类
- iOS的动画效果类型及实现方法
- ios学习--详解IPhone动画效果类型及实现方法
- CATransition的动画效果类型及实现方法
- C# 如何实现一个线程暂停和继续
- iphone的动画效果类型及实现方法
- 转iphone 动画实现方法
- 实现动画的方法——计算机达人成长之路(21)
- iphone的动画效果类型及实现方法