仿iphone原生短信滑动时惯性效果
来源:互联网 发布:撒贝宁智商知乎 编辑:程序博客网 时间:2024/06/01 09:57
如果又细心的朋友会发现,iphone的自带短信息的信息列表在拖拽滑动的时候,每一个cell会有惯性的动画效果,这个我也是从网上找到一些资料,最后知道早在2013年苹果就对这个进行了设计,大家看看这个https://onevcat.com/2013/09/spring-list-like-ios7-message/,这个是喵神(王巍)在2013年的时候写的文章,里面详细讲述了UIKit DyaDynamic的由来以及使用方式.
DyaDynamic主要是用来描述对象的力学性质的,比如我们的cell是一个view(可以看成一个有质量,有大小的物体),用DyaDynamic来修饰这个cell就会有很多一般很难实现的动画效果的展示,比如重力,推力,拉力,碰撞等等
DyaDynamic的核心类有以下几个:
UIDynamicItem:用来描述一个物体的力学特性,是一个协议,只要遵守了这个协议的对象,就可以添加力学特性了.
UIDynamicBehavior:动力行为的描述,用来添加到"实体"上的受力类型,是一个基类,我们一般使用它的子类.
UIDynamicAnimator:动画播放者,之前说的虽然我们给对象添加了力学特性,但是毕竟都是虚拟的,所谓的力学特性只不过是我们肉眼看到的动画效果,所以需要一个动画来播放这些特效,将力学行为添加到这个动画里面就会"看到"力学特性了.
RefernceView:参考对象,一切物体的运动都是相对的,我们说的汽车的行驶速度是相对于地面而言的,这时候地面就是参考对象,我们要描述一个物体的力学运动必须要有一个参考
上面是DyaDynamic这个框架下面的主要的一个类,下面介绍一下UIDynamicBehavior的几个主要的子类:
UIGravityBehavior:重力行为,来给对象添加一个重力的效果
UICollisionBehavior:碰撞行为
UIPushBehavior:给对象添加一个力的作用,可以是持续的力,也可以是瞬间的力(冲量)
UIAttachmentBehavior:让对象的质心跟随手指的移动而移动
UISnapBehavior:吸附行为,像磁铁一样把物体吸附到你指定的点
下面附上我的一个范例,这个是我根据喵神范例写的swift版的,如果想要OC版本的请通过上面给的网址前往
iphone短信列表惯性效果范例https://github.com/butterflyXX/IphoneMessageEffects
这个例子还是和原生的效果有很多不同,首先原生的效果看起来更加的舒服,喵神这个例子在拖拽后会有很长时间的晃动,之后才会完全停止,体验并不是很好,如果有好的解决方式,请分享一下,谢谢
QQ:1459709117
Email:liuxiaochen1991@icloud.com
- 仿iphone原生短信滑动时惯性效果
- android Gallery去掉滑动惯性效果
- Cocos2d-js中实现惯性滑动效果
- Cocos2d-js中实现惯性滑动效果
- [Android] RecyclerView滑动没有惯性效果
- 仿Iphone刘海效果
- BREW仿IPHONE滑动菜单!
- android仿iphone滑动解锁
- Unity拖动摄像机加上惯性滑动的效果
- 仿iPhone《最美应用》app的底部滑动菜单效果
- Android 自定义ScrollView 支持惯性滑动,惯性回弹效果。支持上拉加载更多
- Android 仿苹果滑动效果
- 仿QQ tab滑动效果
- 仿path首页滑动效果
- 仿iOS滑动返回效果
- 越狱开发之iPhone原生短信hook
- 仿iphone原生的时钟程序
- android handcent短信 仿iphone气泡聊天
- centos7中docker的安装和简单使用
- 输出一个矩阵,按照顺时针方向内增大
- HTML 禁止拖动Video进度条
- 004-执行 docker attach 后,没有进入容器内部
- 汽车钥匙加密算法技术
- 仿iphone原生短信滑动时惯性效果
- 背包问题(01背包,完全背包,多重背包)
- Android View基础知识
- Java中的读/写锁
- N阶楼梯上楼问题
- GLSL ROTATION ABOUT AN ARBITRARY AXIS
- 【干货】一键压缩Android项目中png的大小!
- Docker学习(一)简介
- C/C++常用头文件及函数汇总