————————————【 iOS—UIDynamic 】—————————————
一、简单介绍
1.什么是UIDynamic
UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架
可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象
如:重力、弹性碰撞等现象
2.物理引擎的价值
广泛用于游戏开发,“愤怒的小鸟”
让开发人员可以在远离物理学公式的情况下,实现炫酷的物理仿真效果
提高了游戏开发效率,产生更多优秀好玩的物理仿真游戏
3.知名的2D物理引擎
Box2d
Chipmunk
二、使用步骤
要想使用UIDynamic来实现物理仿真效果,大致的步骤如下
(1)创建一个物理仿真器(顺便设置仿真范围)
(2)创建相应的物理仿真行为(顺便添加物理仿真元素)
(3)将物理仿真行为添加到物理仿真器中开始仿真
现实生活:
运动场——物理仿真器(环境)
跑步——物理仿真行为
人——仿真元素
三、相关说明
1.三个概念
(1)谁要进行物理仿真?
物理仿真元素(Dynamic Item)
(2)执行怎样的物理仿真效果?怎样的动画效果?
物理仿真行为(Dynamic Behavior)
(3)让物理仿真元素执行具体的物理仿真行为
物理仿真器(Dynamic Animator)
2.物理仿真元素
注意:
不是任何对象都能做物理仿真元素
不是任何对象都能进行物理仿真
物理仿真元素要素:
任何遵守了UIDynamicItem协议的对象
UIView默认已经遵守了UIDynamicItem协议,因此任何UI控件都能做物理仿真
UICollectionViewLayoutAttributes类默认也遵守UIDynamicItem协议
3.UIDynamic提供了以下几种物理仿真行为
UIGravityBehavior:重力行为
UICollisionBehavior:碰撞行为
UISnapBehavior:捕捉行为
UIPushBehavior:推动行为
UIAttachmentBehavior:附着行为
UIDynamicItemBehavior:动力元素行为
实现演示效果需要掌握以下知识点
———————————【 UIDynamicAnimator 动画播放者 】————————————
一、UIKit动力学(UIKIt Dynamics)
1.概念:UIKit的一套动画和交互体系
2.UI动画:CoreAnimation、UIView animations
3.2D物理引擎:重力,铰链连接,碰撞,悬挂等效果(模拟现实拖拽、弹性效果)
4.功能:作为交互设计和实现的补充(并不是替代CA或者UIView动画)
tips:
1.CA:
self.view.transform = CGAffineTransformMakeRotation(M_PI_4);
2.UIView:
//设置序列图数组
imageView1.animationImages = imageArray;
imageView1.animationDuration = 2;
imageView1.animationRepeatCount = 0;
//播放动画
[imageView1 startAnimating];
[imageView1 stopAnimating];
二、UIKit动力学实现的结构
1.UIDynamicItem(描述一个力学物体的状态):其实就是实现了UIDynamicItem委托的对象;
2.UIDynamicBehavior(动力行为的描述):用来指定UIDynamicItem应该如何运动。
3.UIDynamicAnimator(动画的播放者):动力行为(UIDynamicBehavior)的容器,添加到容器内的行为将发挥作用;
4.ReferenceView(等同于力学参考系):只有当想要添加力学的UIView的子View时,动力UI才发生作用