如何暂停和恢复CALayer上的动画

原创 2016年05月31日 17:57:36

coreAnimation的动画是存在于CALayer上面的,有些时候需要突然暂停某个组件的动画效果,同时保留当前动画的状态,

如果是用removeAnimation会显得很突兀,不够平滑,所以可以利用设置动画速度和设置一个时间偏移量来暂停动画:

//用来暂停layer上的动画  
-(void)pauseLayer:(CALayer*)layer  
{  
    CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil];  
    layer.speed = 0.0;  
    layer.timeOffset = pausedTime;  
}  
//恢复layer上的动画  
-(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;  
}  


版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS CAlayer 动画进入后台或者 调用viewWillDisappear viewDidDisappear后动画暂停问题的解决办法

iOS CAlayer 动画进入后台或者 调用viewWillDisappear viewDidDisappear后动画暂停问题的解决办法 .When my application is en...
  • jeffasd
  • jeffasd
  • 2016年11月16日 10:58
  • 2245

CAlayer层的隐式动画属性

  • 2014年11月20日 10:58
  • 1.12MB
  • 下载

CALayer动画

  • 2016年09月08日 19:20
  • 333KB
  • 下载

iOS 为CALayer添加可动画的属性(以二维码切换扫描区域为例)

原创Blog,转载请注明出处 http://blog.csdn.net/hello_hwc?viewmode=list 我的stackoverflow我的Github https://git...

iOS —— CALayer 层的属性及隐式动画

CALayer 进一步理解 CALayer包含在QuartzCore框架中,这是一个跨平台的框架,既可以用在iOS中又可以用在Mac OS X中。在使用Core Animation开发动画的本质就...

CoreAnimation基础介绍、简单使用CALayer以及多种动画效果

CoreAnimation基础介绍、简单使用CALayer以及多种动画效果 发布于:2013-05-22 15:50阅读数:5071 Core Animation可以翻译为核心动画,它为图形渲染...

ios开发——使用CALayer和Core Animation做动画效果

一. CALayer (一). CALayer简介 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView,其实UI...

CALayer 简易动画

1.CALayer是低级组件,像是铺在一个内容固定对象上的一个片,非常灵活的支持在一个对象上显示内容,可在屏幕上弯曲或扭曲内容。     在MVC设计模式中,视图是V对象,层是M对象。层封装了布局,...

用calayer做动画 脉冲

// // ViewController.m // JLPulseAnimation // // Created by iOS on 16/1/20. // Copyright © 2016年...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何暂停和恢复CALayer上的动画
举报原因:
原因补充:

(最多只允许输入30个字)