【ios学习】OneClock的翻页时钟效果是如何实现的
OneClock目前的三个表盘中用户最喜欢的是翻页时钟。翻页效果是表盘的核心,也是我花时间调试最久的细节。经过7次的产品迭代,终于调整到了一个合适的效果。
实现这个动效的方法只需用到CABasicAnimation中的以X轴旋转即可。CABasicAnimation实际上还有很多参数,比如大小、透明度、背景颜色等,用这个方法做很多动画都是可以实现的。
制作翻页时钟的效果,实际上需要解决3个问题:
1.只要时间刻度变动就提前翻页;
2.真实演示出翻页过程的遮盖和层级效果;
3.正确显示数字;
实现过程
将翻页的过程通过侧面角度,解析成下图中所示的样子。翻页的效果是从“上半页”翻转到“下半页”,为了让过程显得舒缓,我将翻页的过程设定为1.0秒。翻页过程耗时1.0秒,因此在真实时间到达某一秒钟时,需要判断下一秒是否需要翻页,如果翻页,就立刻执行翻页的过程。
翻页过程不需要改变最底层的X层和Y层,它们继续静态显示即可。以8点13分59秒为例,当判断下一秒为8点14分时,将立刻生成A层、B层、C层,分别在下图示意的位置。
A层、B层所显示的数字为当前的13,C层所显示的数字为下一秒的时间14,当然因为方向的问题C层翻转之后实际上是“下半层”。
一旦开始旋转,A层、B层、C层覆盖X层和Y层,此时的X层和Y层可以提前赋予他们下一秒的时间14。
随着不断翻转,0.5秒后,上半层露出下一个时间14,下半层仍然显示的是当前时间13。
0.5秒到1.0秒之间,C层会逐步在下半部显示,能够清晰地看到下一个数字为14。翻页1.0秒之后,时间刚好到达此刻的时间8点14分,A层、B层、C层的使命完成,立刻消失隐藏。X层和Y层提前1秒显示了正确的时间,翻页1.0秒后的时间刚好是我们所见到的正确时间8点14分。
如此,翻页过程结束。
小时的翻页和分钟的翻页实际上是一样的,只是小时翻页的过程伴随着分钟同时翻页,例如8点59分59秒的下一秒是9点00分,因此两个翻页将同时进行,而基本原理是一样的。
相关代码
在我的代码实现中,「翻页时钟」和「检测时间」两个函数是分开独立的,因此时钟、分钟甚至秒钟都可以单独执行翻页。
翻页函数:
func rotation(A:UIView,B:UIView,C:UIView){A.alpha = 1B.alpha = 1C.alpha = 1rotationFirst(view: B)//本文中提到的B,显示13rotationSecond(view: C)//本文中提到的C,显示14self.perform(#selector(self.initializeABC),with: nil, afterDelay: 0.9) //最后为了过度顺利,提前0.1秒让A/B/C小时//initializeABC函数设置A/B/C隐藏}
func rotationFirst(view:UIView){//旧值标签,先出来 let animation = CABasicAnimation(keyPath: "transform.rotation.x")animation.fromValue = (-10/360)*Double.pianimation.toValue = (-355/360)*Double.pianimation.duration = 1.0animation.repeatCount = 0animation.delegate = selfas? CAAnimationDelegateview.layer.add(animation, forKey: "rotationSecond")view.alpha = 1}
func rotationSecond(view:UIView) {//新值标签,后 let animation = CABasicAnimation(keyPath: "transform.rotation.x")animation.fromValue = (355/360) * Double.pianimation.toValue = (10/360) * Double.pianimation.duration = 1.0animation.repeatCount = 0animation.delegate = self as? CAAnimationDelegateview.layer.add(animation, forKey: "rotationFirst")view.alpha = 1}
【ios学习】OneClock的翻页时钟效果是如何实现的相关推荐
- android sdio 时钟 ios-clock,【ios学习】OneClock的翻页时钟效果是如何实现的
OneClock目前的三个表盘中用户最喜欢的是翻页时钟.翻页效果是表盘的核心,也是我花时间调试最久的细节.经过7次的产品迭代,终于调整到了一个合适的效果. 实现这个动效的方法只需用到CABasicAn ...
- OneClock的翻页时钟效果是如何实现的
OneSwift - iOS Tips Based On Swift OneClock目前的三个表盘中用户最喜欢的是翻页时钟.翻页效果是表盘的核心,也是我花时间调试最久的细节.经过7次的产品迭代,终于 ...
- OneClock 不息屏的极简时钟,不仅仅是翻页时钟那么简单!
OneClock Mac时钟软件包括翻页时钟.数字时钟.表盘时钟,更多表盘三种样式.支持黑色和白色主题切换.透明度设置等设计. 不仅仅适配Mac 在iOS设备上,限于苹果并未开放任何屏保时钟.桌面时钟 ...
- OneClock - 不仅仅是桌面极简翻页时钟
OneClock 中文版是mac上一款翻页时钟与极简时钟的屏幕时钟应用.目前包括翻页时钟.数字时钟.表盘时钟,更多表盘三种样式.支持黑色和白色主题切换.透明度设置.设置为桌面动态时钟和屏幕保护程序.支 ...
- creator 数字翻页效果_用好这款Fliqlo翻页时钟屏保让你电脑瞬间提升逼格和幸福感!...
?本文共计:2088字·⏰阅读时长:6分钟 ?目录预览 -------------- ① 电脑屏幕保护有啥? ② Fliqlo的基本介绍 ③ Fliqlo不同系统的使用教程 + Mac OS系统的使用 ...
- android 日历翻页动画,Android 仿日历翻页、仿htc时钟翻页、数字翻页切换效果
废话不多说,效果图: 自定义控件找自网络,使用相对简单,具体还没有来得及深入研究,只是先用笨方法大概实现了想要的效果,后续有空会仔细研究再更新文章, 本demo切换方法是用的笨方法,也就是由新数字和旧 ...
- mac屏保时钟_OneClock 不息屏的极简时钟,不仅仅是翻页时钟那么简单!
OneClock Mac时钟软件包括翻页时钟.数字时钟.表盘时钟,更多表盘三种样式.支持黑色和白色主题切换.透明度设置等设计. 不仅仅适配Mac 在iOS设备上,限于苹果并未开放任何屏保时钟.桌面时钟 ...
- 买不起时钟的我,为自己写个翻页时钟
买不起时钟的我,为自己写个翻页时钟 为了提高自己的时间观念,我决定为自己配一个时钟,迷上了翻页时钟,但是发现翻页时钟软件都是付费的,再就是达不到自己的要求,于是决定为自己写个.看似简单,实则非易.为自 ...
- 全屏时钟软件Linux,翻页时钟下载-翻页时钟安卓版下载v1.2.3-Linux公社
翻页时钟中有很丰富的时钟样式可以供用户随心切换,这上面的时间也是十分的准确哦,支持横屏.竖屏两种方式展现,更有酷炫的背景等着用户来更换,也能够自定义喜欢的图片进行背景设置,非常人性化的功能,翻页时钟中 ...
最新文章
- mac 不显示 外接屏幕_苹果笔记本A1707电脑屏幕不显示,主板进水腐蚀,一招秒杀...
- TDD测试驱动开发过程
- 排序二叉树BST(binary search/sort tree)
- java 方块_哈工大java实验 移动小方块
- java实现rsa欧几里得算法求d_RSA算法中利用欧几里得算法求d详细过程
- 【英语学习】【Level 07】U08 Old Stories L2 A good read
- asp.net mvc项目中遇到的古怪的问题,(项目中有frame框架)
- 深入剖析SolrCloud(四)
- 微型计算机工作适宜的温度,应用电脑(1)第一章 第一节 计算机的基本组成...
- UE4 粒子特效基础学习 (02-光晕效果制作)
- java毕业设计电影票网上订票系统Mybatis+系统+数据库+调试部署
- 中兴新支点操作系统_QQ Linux版重磅回归,完美适配中兴新支点操作系统,快来使用吧...
- rust自我解脱_如何从婚姻的痛苦中自我解脱?
- 笔记本计算机在桌面显示器,笔记本连接显示器
- 有哪些好用的渲染软件?12个业内顶级渲染软件推荐
- Win11如何设置系统还原点?
- 洛谷P1378 油滴扩展
- 理解Intel cpufreq intel_pstate driver的工作模式
- Allegro-PCB导出DXF文件
- P6跨级晋升P8再到P10,我的11年成长之路