UIDynamic的使用
来源:互联网 发布:淘宝充值话费有发票吗 编辑:程序博客网 时间:2024/06/06 01:56
UIDynamic的使用
来源:http://www.cnblogs.com/wendingding/p/3893740.html
iOS开发拓展篇—UIDynamic(简单介绍)
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.物理仿真行为
(1)UIDynamic提供了以下几种物理仿真行为
UIGravityBehavior:重力行为
UICollisionBehavior:碰撞行为
UISnapBehavior:捕捉行为
UIPushBehavior:推动行为
UIAttachmentBehavior:附着行为
UIDynamicItemBehavior:动力元素行为
(2)物理仿真行为须知
上述所有物理仿真行为都继承自UIDynamicBehavior
所有的UIDynamicBehavior都可以独立进行
组合使用多种行为时,可以实现一些比较复杂的效果
4.物理仿真器
(1)物理仿真器须知
它可以让物理仿真元素执行物理仿真行为
它是UIDynamicAnimator类型的对象
(2)UIDynamicAnimator的初始化
- (instancetype)initWithReferenceView:(UIView *)view;
view参数:是一个参照视图,表示物理仿真的范围
5.物理仿真器的说明
(1)UIDynamicAnimator的常见方法
- (void)addBehavior:(UIDynamicBehavior *)behavior; //添加1个物理仿真行为
- (void)removeBehavior:(UIDynamicBehavior *)behavior; //移除1个物理仿真行为
- (void)removeAllBehaviors; //移除之前添加过的所有物理仿真行为
(2)UIDynamicAnimator的常见属性
@property (nonatomic, readonly) UIView* referenceView; //参照视图
@property (nonatomic, readonly, copy) NSArray* behaviors;//添加到物理仿真器中的所有物理仿真行为
@property (nonatomic, readonly, getter = isRunning) BOOL running;//是否正在进行物理仿真
@property (nonatomic, assign) id <UIDynamicAnimatorDelegate> delegate;//代理对象(能监听物理仿真器的仿真过程,比如开始和结束)
- UIDynamic的基本使用
- UIDynamic的使用
- UIdynamic的简单使用
- UIDynamic使用
- UIDynamic
- UIDynamic
- 【UIDynamic例子】挂起的方块
- 跟着斯坦福白胡子老头学UIDynamic动画的技巧
- 【iOS】UIDynamic
- 、UIDynamic介绍
- UIDynamic注意事项
- UIDynamic介绍
- UIDynamic 动画
- swift 快速奔跑的兔几 本节的内容是:UIDynamic:UI和重力
- 动画-UIDynamic
- UIDynamic 简单介绍
- UIDynamic(简单介绍)
- iOS-UIDynamic-UIKit
- 历史工作记录:V8-SH4移植项目到目前为止的经验总结 2010.3
- 最短路径问题(最短路径)
- 沉浸式状态栏技术方案及其中的一些坑
- 课题第四天-blast结果解析
- cocos2d-js中的一些语法问题
- UIDynamic的使用
- C++_运算符重载
- 一些免费的WebService的服务网站
- stm32的PWM输入捕获模式
- Android-66-activity返回时报空指针:“ RuntimeException:to start activity”和“ Unable Finalizing a Cursor···”
- 【转】CSS实现div的高度填满剩余空间
- LUA常见库和工具
- 如果mysql的root密码忘了怎么办
- 黑马程序员——单例设计模式