iOS物理仿真

————————————【 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才发生作用

你可能感兴趣的:(iOS物理仿真)