用POP动画模拟真实秒钟摆动效果
用POP动画模拟真实秒钟摆动效果

静态图:

动画图:

此处用到了POP中的Spring系列动画,现提供源码如下:
SecondClockView.h 与 SecondClockView.m
//
// SecondClockView.h
// YouXianMingClock
//
// Created by YouXianMing on 14-10-12.
// Copyright (c) 2014年 YouXianMing. All rights reserved.
// #import <UIKit/UIKit.h> @interface SecondClockView : UIView /**
* Use in conjunction with 'springSpeed' to change animation effect. Values are converted into corresponding dynamics constants. Defined as a value in the range [0, 20]. Defaults to 18.
*/
@property (nonatomic, assign) CGFloat springBounciness; /**
* The mass used in the dynamics simulation.
*/
@property (nonatomic, assign) CGFloat dynamicsMass; /**
* Use in conjunction with 'springBounciness' to change animation effect. Values are converted into corresponding dynamics constants. Defined as a value in the range [0, 20]. Defaults to 18.
*/
@property (nonatomic, assign) CGFloat springSpeed; /**
* 给与时间进行的动画
*
* @param second 当前秒
*/
- (void)startAnimationWithSecond:(float)second; @end
//
// SecondClockView.m
// YouXianMingClock
//
// Created by YouXianMing on 14-10-12.
// Copyright (c) 2014年 YouXianMing. All rights reserved.
// #import "SecondClockView.h"
#import "POP.h" /**
* 将角度转换为弧度
*
* @param d 角度
*
* @return 弧度
*/
#define DEGREES__TO__RADIANS(d) ((d) * M_PI / 180.f) @interface SecondClockView () { BOOL firstTime; } @end @implementation SecondClockView - (void)startAnimationWithSecond:(float)second
{
// 秒钟
POPSpringAnimation *springAnimation = \
[POPSpringAnimation animationWithPropertyNamed:kPOPLayerRotation]; springAnimation.fromValue = @(DEGREES__TO__RADIANS(()/.f)*(second - ) + DEGREES__TO__RADIANS(-));
if (firstTime == NO) {
firstTime = YES;
springAnimation.fromValue = @();
}
springAnimation.toValue = @(DEGREES__TO__RADIANS(()/.f)*second + DEGREES__TO__RADIANS(-));
springAnimation.springBounciness = (_springBounciness > && _springBounciness <= )?_springBounciness:.f;
springAnimation.dynamicsMass = (_dynamicsMass > )?_dynamicsMass:1.5f;
springAnimation.springSpeed = (_springSpeed > && _springSpeed <= )?_springSpeed:.f;
[self.layer pop_addAnimation:springAnimation forKey:nil];
} @end
使用时候的情形

使用的时候请引入POP库

用POP动画模拟真实秒钟摆动效果的更多相关文章
- 用POP动画编写带富文本的自定义动画效果
用POP动画编写带富文本的自定义动画效果 [源码] https://github.com/YouXianMing/UI-Component-Collection [效果] [特点] * 支持富文本 * ...
- 使用JavaScript和Canvas打造真实的雨滴效果
使用JavaScript和Canvas打造真实的雨滴效果 寸志 · 1 年前 我最近搞了一个有趣的项目——rainyday.js .我认为这个项目并不怎么样,而且,事实上这是我第一次尝试接触一些比弹窗 ...
- 经典!HTML5 Canvas 模拟可撕裂布料效果
这是一个模拟可撕裂布料效果的 HTML5 Canvas 应用演示,效果逼真.你会看到,借助 Canvas 的强大绘图和动画功能,只需很少的代码就能实现让您屏息凝神的效果. 温馨提示:为保证最佳的效果, ...
- iOS动画——弹窗动画(pop动画)
用pop动画简单实现弹窗的缩放和渐变,感觉这个动画常用,就写一下博客 pop动画是Facebook推出的动画引擎,请自行到GitHub上搜索下载拖拽导入xcode项目中. 更多pop动画使用和原理可网 ...
- POP动画引擎中Layer与CALayer的一点区别
POP动画引擎是facebook提供的一个开源框架, 可以实现很多的动画效果, 这里就不一一介绍啦, 有兴趣的童鞋请移步: https://github.com/facebook/pop 下面简单的讲 ...
- 基于Kinetic框架实现超酷的风铃悬挂摆动效果
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/iefreer/article/details/37049987 在踏得网开发过程中,我们在引导页面中 ...
- POP动画[1]
POP动画[1] pop动画是facebook扩展CoreAnimation的,使用及其方便:) 1:Spring系列的弹簧效果(两个动画kPOPLayerBounds与kPOPLayerCorner ...
- POP动画[3]
POP动画[3] 这一节主要讲解POP动画的自定义动画属性. POP动画中有一个参数,叫timingFunction,与CoreAnimation中的一个参数CAMediaTimingFunction ...
- POP动画[2]
POP动画[2] 1:定制控制器间的转场动画. 源码有点多-_-!! // // RootViewController.h // Animation // // Copyright (c) 2014年 ...
随机推荐
- Jmeter创建WebService 测试计划
构建 WebService 测试计划 在本章节,你将学习如何创建一个 测试计划 去测试 WebService.先创建5个用户请求同一个页面,同时每个请求重复2次,因此总数为(5个用户)X(1次请求)X ...
- com.alibaba.dubbo.rpc.RpcException: Failed to invoke remote method解决方法
报错日记: Caused by: com.alibaba.dubbo.rpc.RpcException: Failed to invoke remote method: getUserAuthLeve ...
- 使用WSW将Nginx创建为Windows系统服务
我们都知道Windows Service是一种特殊的应用程序,它的好处是可以一直在后台运行,相对来说,比较适合一些需要一直运行同时不需要过多用户干预的应用程序,这一类我们称之为“服务”,在Window ...
- applets
Java Applet 可以大大提高Web页面的交互能力和动态执行能力.包含Applet的网页被称为Java-powered页,可以称其为Java支持的网页. Applet 当用户访问这样的网页时,A ...
- 1-1、create-react-app 配置 mobx
1.用npx create-react-app my-app安装项目 2.cd my-app 3.执行 npm run eject 让配置文件可见 4.npm install --saveDev ...
- 话说C语言的关键字volatile
最近搞NVMe驱动需求分析,对volatile这个单词实在是再熟悉不过了. 而在C语言中,有一个关键字就叫做volatile, 其字面意思是"挥发性的, 不稳定的,可改变的". 那 ...
- SSRS 报表中的Chart在IE中不显示
解决办法: 重启SSRS服务...
- HTTP协议状态码学习
一直以来都在追求实战,从而忽视了对理论知识的深入学习和理解.这并不可怕,可怕的是当意识到自己的不足时,没有行动. 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码. 代码 说明 ...
- linux中find与rm实现查找并删除文件
find命令: find . -name '*.log' #查找当前目录下的log文件 查找并删除: find . -name '*.log' -type f -print -exec rm -rf ...
- golang类型转化
int 转 float mean:= float32(sum) float 转 int a := 5.0 b := int(a) string 转 int i,_ := strconv.At ...