IOS 暂停和恢复CALayer上的动画(转)
2024-09-29 07:28:57
coreAnimation的动画是存在于CALayer上面的,有些时候需要突然暂停某个组件的动画效果,同时保留当前动画的状态,
如果是用removeAnimation会显得很突兀,不够平滑,所以可以利用设置动画速度和设置一个时间偏移量来暂停动画:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
//用来暂停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; } |
最新文章
- LeetCode Shortest Distance from All Buildings
- nodejs初探(四)实现一个多人聊天室
- 802.11协议帧格式、Wi-Fi连接交互过程、无线破解入门研究
- Xamarin Android提示内存溢出错误
- Hyper-V网络虚拟化--VM之间拷贝速度慢
- 有关sybase的一些零星经验
- Winform获取应用程序的当前路径
- oradebug推进scn
- Excel设置下拉选项的方法
- 【解惑】剖析float型的内存存储和精度丢失问题
- swing-窗体添加背景图片的2种方法
- JAVA 多线程(2)
- IPv6地址测试宏
- sql 2005性能调优
- centos install jdk
- Android2.2+opencv3.1配置实现
- [Web 前端 ] 还在用浮动吗?CSS flex布局你了解多少?
- redis5.0主从配置
- 十八、springboot中hibernate配置sessionFactory访问数据库
- python学习笔记(二十八)日志模块
热门文章
- 我对于js注入的理解
- Mac 因误使用chmod -R 777 命令更改 /usr/bin 造成终端不能实用,提醒进程已结束的完美解决方案!
- 【转】MapReduce:默认Counter的含义
- python 列表、元组 详解
- Selenium - WebDriver: Page Objects
- [错误处理]AttributeError: 'generator' object has no attribute 'next'
- OgnlValueStack 源码
- 字符串匹配算法(在字符串T中查找是否有与字符串P相同的子串)
- JS判断是否是IE浏览器的几种方式
- BZOJ 1096: [ZJOI2007]仓库建设(DP+斜率优化)