告诉jlink仿真器器哪些元素添加重力行为

<i itemprop="interactionCount" content="UserDownloads: 万
安装后,您可能在通知栏看到不明来源的广告信息,影响您的使用体验。
重力仿真器 截图
重力仿真器 历史版本
重力仿真器
重力仿真器
版本:1.0.1
重力仿真器
版本:1.0.0
重力仿真器 相关攻略
重力仿真器 应用内最新内容
3825 万人安装
41 万人安装
777 万人安装
5849 万人安装
3509 万人安装
3692 万人安装
2691 万人安装
1845 万人安装
1256 万人安装
2354 万人安装
1049 万人安装
2640 万人安装
1378 万人安装
我们的产品
豌豆实验室
帮助与支持
(在QQ查找-找公众号搜索即可)
除非特别注明,应用程序由第三方市场提供,豌豆荚仅根据你的指令提供搜索结果链接,与出处无关,详情请参阅
扫一扫安装豌豆荚安卓客户端正文/环境仿真器
   环境因素包括自然的和人为的两类。自然环境指地球(地面、地下、水面、水下、大气)和空间(星际空间与天体)的自然形成的环境。人为环境指人工形成的环境(建筑物和运载工具的内部环境)。环境仿真器模仿的环境因素主要有极端压力(真空、高压),极端温度(低温、高温),湿度,运动状态(振动、冲击、摇摆、颠簸、加速度),辐射(热辐射、高能光子、带电粒子),尘土(地土、宇宙尘),引力场(超重、失重),磁场,电场等。   环境仿真器可实现一种或几种环境因素的仿真。常用的振动试验台可实现一种环境因素(振动)的仿真。空间环境仿真器则可实现多种复杂环境因素的仿真。在环境仿真器中,真空环境的仿真是通过真空泵系统抽气而实现的;极低温的仿真可通过液氮或液氦等低温液体的循环冷却系统达到;运动状态的仿采用机械的、电磁的或电气液压的方法来实现;太阳的电磁辐射是利用大功率碳弧源、氙弧源和高强度紫外线辐射源来仿真的;带电粒子辐射的仿真是通过射频离子源或电子轰击源作为质子源,经过离子抽取和质子分离系统的抽取、聚焦、传送,然后射向目标来实现的;宇宙尘轰击的仿真是由带电微粒通过粒子加速器加速而实现的;超重的仿真是通过旋转运动的实现的;失重可通过飞行器在垂直平面内的圆周运动实现短暂的仿真或通过人体在水中所受浮力对重力的抵消作用来仿真。实现复杂环境仿真常常需要综合利用多种工程技术手段。&
配图/环境仿真器
相关连接/环境仿真器
&|&相关影像
互动百科的词条(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。未经许可,禁止商业网站等复制、抓取本站内容;合理使用者,请注明来源于。
登录后使用互动百科的服务,将会得到个性化的提示和帮助,还有机会和专业认证智愿者沟通。
此词条还可添加&
编辑次数:3次
参与编辑人数:2位
最近更新时间: 16:48:18
认领可获得以下专属权利:
贡献光荣榜iOS开发中使用UIDynamic来捕捉动画组件的重力行为
下面是个iOS开发中使用UIDynamic来捕捉动画组件的重力行为教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!
UIDynamic基本认识一、简单介绍1.什么是UIDynamicUIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象如:重力、弹性碰撞等现象2.物理引擎的价值广泛用于游戏开发,经典成功案例是“愤怒的小鸟”让开发人员可以在远离物理学公式的情况下,实现炫酷的物理仿真效果提高了游戏开发效率,产生更多优秀好玩的物理仿真游戏3.知名的2D物理引擎Box2dChipmunk二、使用步骤要想使用UIDynamic来实现物理仿真效果,大致的步骤如下(1)创建一个物理仿真器(顺便设置仿真范围)(2)创建相应的物理仿真行为(顺便添加物理仿真元素)(3)将物理仿真行为添加到物理仿真器中 &#61664; 开始仿真三、相关说明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参数:是一个参照视图,表示物理仿真的范围5.物理仿真器的说明(1)UIDynamicAnimator的常见方法代码如下:  - (void)addBehavior:(UIDynamicBehavior *)&   //添加1个物理仿真行为  - (void)removeBehavior:(UIDynamicBehavior *)  //移除1个物理仿真行为  - (void)removeAllB&   //移除之前添加过的所有物理仿真行为&(2)UIDynamicAnimator的常见属性代码如下:  @property (nonatomic, readonly) UIView* referenceV& //参照视图  @property (nonatomic, readonly, copy) NSArray*//添加到物理仿真器中的所有物理仿真行为  @property (nonatomic, readonly, getter = isRunning) BOOL//是否正在进行物理仿真  @property (nonatomic, assign) id UIDynamicAnimatorD//代理对象(能监听物理仿真器的仿真过程,比如开始和结束)捕捉行为一、简介可以让物体迅速冲到某个位置(捕捉位置),捕捉到位置之后会带有一定的震动UISnapBehavior的初始化代码如下:  - (instancetype)initWithItem:(id UIDynamicItem)item snapToPoint:(CGPoint)&UISnapBehavior常见属性代码如下:  @property (nonatomic, assign) CGF  用于减幅、减震(取值范围是0.0 ~ 1.0,值越大,震动幅度越小)UISnapBehavior使用注意  如果要进行连续的捕捉行为,需要先把前面的捕捉行为从物理仿真器中移除二、代码说明在storyboard中放一个view控件,作为演示用的仿真元素。代码如下:代码如下:////& YYViewController.m//& 13-捕捉行为////& Created by apple on 14-8-8.//& Copyright (c) 2014年 yangyong. All rights reserved.//#import "YYViewController.h"@interface YYViewController ()@property (weak, nonatomic) IBOutlet UIView *blueV@property(nonatomic,strong)UIDynamicAnimator *@end@implementation YYViewController-(UIDynamicAnimator *)animator{&&& if (_animator==nil) {&&&&&&& //创建物理仿真器,设置仿真范围,ReferenceView为参照视图&&&&&&& _animator=[[UIDynamicAnimator alloc]initWithReferenceView:self.view];&&& }&&& return _}- (void)viewDidLoad{&&& [super viewDidLoad];}-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{&&& //获取一个触摸点&&& UITouch *touch=[touches anyObject];&&& CGPoint point=[touch locationInView:touch.view];&&& &&& //1.创建捕捉行为&&& //需要传入两个参数:一个物理仿真元素,一个捕捉点&&& UISnapBehavior *snap=[[UISnapBehavior alloc]initWithItem:self.blueView snapToPoint:point];&&& //设置防震系数(0~1,数值越大,震动的幅度越小)&&& snap.damping=arc4random_uniform(10)/10.0;&&& &&& //2.执行捕捉行为&&& //注意:这个控件只能用在一个仿真行为上,如果要拥有持续的仿真行为,那么需要把之前的所有仿真行为删除&&& //删除之前的所有仿真行为&&& [self.animator removeAllBehaviors];&&& [self.animator addBehavior:snap];}@end
来源:/n/1570.html
热门搜索:
打造室内柔和淡黄色效果 PS人像照片调色教程
CAD教程 如何使用CAD打印图纸
怎样禁止别人修改电脑登入密码
PS入门教程
使用PS处理图片为油画效果
您可能会发现,经常看到在短视频有人在表演的时候说一些鼓励的话,然后就是双击666,听的您或许摸不清头脑,我就在这里为您解答一下,请给我点赞,让我解答更加有动力。
您是否熟悉我们生活的城市是怎么命名而来的呢?中国城市的命名可是有很深的文化底蕴和历史背景的,你都知道么?我从网上搜集了大量的城市名来源,让您好好的涨涨知识,您准备好了吗?
对于爱美人士来说,美白护肤是不分季节的,即使在冬季,依然需要做好皮肤护理工作。饮食调理是护肤的一项重要措施,那么冬天美白吃什么水果呢?接下来就和我一起来看看了解一下冬季美白吃什么水果好!
产妇顺产以后多久可以洗头发?有很多产妇为了防止自己受寒所以在产后不让自己洗头发,但是又特别难受,这篇文章讲述了产妇顺产以后多长时间可以洗头发,通过这篇文章了解产妇顺产以后多久可以洗头发吧。
阴阳师是现在相当火热的一款手游,最近阴阳师又有了新的更新,玩家可以通过挑战副本来获取妖刀姬樱雨刀舞皮肤。可是的很多人不知道阴阳师妖刀姬副本阵容是怎样的,下面就给大家来详细介绍吧。
阴阳师是现在很火热的一款手机游戏,这款游戏一直在更新完善,受到很多人的追捧,就在最近阴阳师又推出了小鹿男,小鹿男作为SSR式神,很多人对它还不是很了解,下面就给大家来介绍阴阳师小鹿男御魂以及阵容搭配吧。
我们在玩阴阳师完成悬赏任务的时候,都会要求玩家找到各种式神的位置,可是很多人不知道阴阳师跳跳哥哥在哪里刷、哪里多,下面就给大家来详细介绍吧,希望对大家玩游戏有所帮助。
京津冀及周边地区出现持续雾霾天气,很是让孕妈妈们担心。持续的雾霾天气对孕妇产生了很大的影响,那么雾霾天气对孕妇危害有多大?雾霾天气孕妇怎么办?下面的文章详细介绍 了雾霾天气对孕妇的危害,一起来看看吧。
我们知道宝宝刚刚出生的时候口腔里是没有牙齿的,一般孩子在四个月以后慢慢开始出牙,每个孩子的体质不一样,所以出牙的时间也是有所差异的,宝宝出牙的时候身体会出现一些症状,家长们要及时的护理好,下面一起来看看宝宝长牙的症状有哪些。
肚子上的赘肉看上去让人烦恼,尤其是对于想穿裙子的女生来说更是一件郁闷的事情。现在减肥的方法有很多,但是很多人并不知道专门瘦肚子的方法。那么,如何瘦肚子呢?下面就给大家介绍几种减肚子的方法吧。Swift中的UIKit重力学
重力学这个名词不论在哪个行业领域听起来似乎都很高大上。那么在Swift中的重力学是什么呢?那就是将我们移动端屏幕上毫无生命力的东西也置于万有引力中,使它们能够展现出好像真的由于引力而向下坠落以及碰到物体后自然的弹开的效果。
要想做到这一点,我们得需要两个利器:UIKit Dynamics和Motion Effects。
一、简单介绍
1.UIKit Dynamics是从iOS 7开始引入的一种新技术,隶属于UIKit框架的物理引擎。能模拟和仿真现实生活中的物理现象它可以让我们在程序中对界面元素添加一些行为从而达到诸如重力、弹簧等现实中的动作行为。你只需在引擎中注册界面元素,并指定好物理行为,其他的事就交给物理引擎去完成了。
& Motion Effects可以创建很酷的视差效果,就像你iPhone上横竖屏切换时那样。它基于Apple提供的重力加速器提供的数据计算分析,使我们的界面元素根据移动设备的倾斜方向做出相应的反应。
2.物理引擎的价值
广泛用于游戏开发,经典成功案例是&愤怒的小鸟&
让开发人员可以在远离物理学公式的情况下,实现炫酷的物理仿真效果
提高了游戏开发效率,产生更多优秀好玩的物理仿真游戏
3.知名的2D物理引擎
二、使用步骤
要想使用UIDynamic来实现物理仿真效果,大致的步骤如下
(1)创建一个物理仿真器(顺便设置仿真范围)
(2)创建相应的物理仿真行为(顺便添加物理仿真元素)
(3)将物理仿真行为添加到物理仿真器中 ? 开始仿真
三、相关说明
1.三个概念
(1)谁要进行物理仿真?
  物理仿真元素(Dynamic Item)
(2)执行怎样的物理仿真效果?怎样的动画效果?
  物理仿真行为(Dynamic Behavior)
(3)让物理仿真元素执行具体的物理仿真行为
  物理仿真器(Dynamic Animator)
2.物理仿真元素
注意:不是任何对象都能做物理仿真元素
不是任何对象都能进行物理仿真
物理仿真元素要素:
任何遵守了UIDynamicItem协议的对象
UIView默认已经遵守了UIDynamicItem协议,因此任何UI控件都能做物理仿真
UICollectionViewLayoutAttributes类默认也遵守UIDynamicItem协议
3.物理仿真行为
(1)UIDynamic提供了以下几种物理仿真行为
动力行为可以在任意时间内进行添加或移除。另外动力行为可以是组合的,也可以被继承。可以通过向UIDynamicBehavior或者用户子类化的 UIDynamicBehavior的实例使用addChildBehavior: 方法创建组合行为。(但不能向提供的行为使用该方法)
1.吸附行为(UIAttachmentBehavior):有一个对象UIAttachmentBehavior, 该对象用来指定两个动力项(项或点)之间的连接,当一个项或者点移动时,吸附的项也随之移动。当然,这个连接并不是完全是静态的(static),吸附的 项有两个属性damping(阻尼)和oscillation(震荡),这两个属性决定了吸附项的行为是如何随时间而变化的。
(1)UIAttachmentBehavior
指定两个动力项或者动力项和锚点间的连接。动力项默认锚点在他的center。
步骤1.使用initWithItem:方法实例化UIAttachmentBehavior
2.使用addBehavior: 方法将行为添加到动力动画。
可以加入到自定义的组合行为,如果想在动力动画的每一步改变行为,可以实现继承的 action 方法。
(2)UIAttachmentBehavior实例化方法
convenience init!(item: UIDynamicItem, attachedToAnchor point: CGPoint) //实例化UIAttachmentBehavior,连接dynamic item的center到一个锚点。
convenience init!(item: UIDynamicItem, offsetFromCenter offset: UIOffset, attachedToAnchor point: CGPoint)//实例化UIAttachmentBehavior,连接dynamic item的指定点(相对于dynamic item center的点)到一个锚点。
convenience init!(item item1: UIDynamicItem, attachedToItem item2: UIDynamicItem) //实例化UIAttachmentBehavior,连接dynamic item的center到另一个dynamic item的center。
init!(item item1: UIDynamicItem, offsetFromCenter offset1: UIOffset, attachedToItem item2: UIDynamicItem, offsetFromCenter offset2: UIOffset)//实例化UIAttachmentBehavior,连接 dynamic item的指定点(相对于dynamic item center的点)到另一个dynamic item的指定点。
(3)UIAttachmentBehavior常用属性:
var items: [AnyObject] { get } //返回行为连接的dynamic items。
var attachedBehaviorType: UIAttachmentBehaviorType { get }//UIAttachmentBehavior的类型,枚举(UIAttachmentBehaviorType.Items,.Anchor)
var anchorPoint: CGPoint // 锚点类型UIAttachmentBehavior的锚点。
var length: CGFloat //两个吸附点间的距离(浮点)
var damping: CGFloat // 1: 阻尼数值(浮点) critical(临界值) damping
var frequency: CGFloat // 震动频率(浮点)in Hertz(单位赫兹)
2.碰撞行为(UICollisionBehavior):通过对象UICollisionBehavior指定一个边界,并且让各个动力项,在该边界内参与碰撞。UICollisionBehavior对象还可以指定这些动力项适当的回应碰撞。
(1)UICollisionBehavior
指定一些dynamic item可以相互碰撞或者与UICollisionBehavior的界线碰撞。
步骤1.使用init方法创建UICollisionBehavior, 使用addItem: 方法向其添加dynamic item 或者使用initWithItems:实例化UICollisionBehavior。
2. 使用addBehavior: 方法将UICollisionBehavior加入到动力动画
(2)UICollisionBehavior实例化方法及管理:
init!(items: [AnyObject])//使用dynamic item数组实例化UICollisionBehavior
func addItem(item: UIDynamicItem) //向UICollisionBehavior实例添加dynamic item
func removeItem(item: UIDynamicItem)//删除dynamic item
var items: [AnyObject] { get }//返回UICollisionBehavior实例中的dynamic item数组
var collisionMode: UICollisionBehaviorMode //指定碰撞类型
static var Items: UICollisionBehaviorMode { get }
static var Boundaries: UICollisionBehaviorMode { get }
static var Everything: UICollisionBehaviorMode { get }
var translatesReferenceBoundsIntoBoundary: Bool // 基于相对坐标系统的界线是否有效
UICollisionBehavior设置界线的三种方法:
func setTranslatesReferenceBoundsIntoBoundaryWithInsets(insets: UIEdgeInsets)(前提使用reference view 或者 collection view layout实例化的动力动画)注意: dynamic item的初始位置不能在界线外
func addBoundaryWithIdentifier(identifier: NSCopying, forPath bezierPath: UIBezierPath)
func addBoundaryWithIdentifier(identifier: NSCopying, fromPoint p1: CGPoint, toPoint p2: CGPoint)
func boundaryWithIdentifier(identifier: NSCopying) -& UIBezierPath?//返回指定标示符对应的贝塞尔曲线界线
func removeBoundaryWithIdentifier(identifier: NSCopying)//移除指定标示符对应的贝塞尔曲线界线
var boundaryIdentifiers: [AnyObject]? { get }//返回UICollisionBehavior 实例的所有界线标示符
func removeAllBoundaries()
unowned(unsafe) var collisionDelegate: UICollisionBehaviorDelegate? //实例的collisionDelegate会响应 碰撞的一些回调方法
3.重力行为(UIGravityBehavior):通过对象UIGravityBehavior给动力项指定一个重力矢量,具有重力矢量的动力项,会在重力矢量的方向上一直加速,直到与别的动力项产生了冲突或者,遇到了边界。
(1) UIGravityBehavior实例化方法及管理:
init(items: [AnyObject])//使用dynamic item数组实例化UIGravityBehavior
func addItem(item: UIDynamicItem)//向UIGravityBehavior实例添加dynamic item
func removeItem(item: UIDynamicItem)//移除UIGravityBehavior实例的dynamic item
var items: [AnyObject] { get }//返回UIGravityBehavior实例中的dynamic item数组
// The default value for the gravity vector is (0.0, 1.0)
// The acceleration for a dynamic item subject to a (0.0, 1.0) gravity vector is downwards at 1000 points per second&sup2;.
var gravityDirection: CGVector //航行的方向,趋势(范围是(0.0, 1.0))
var angle: CGFloat// 角度
var magnitude: CGFloat// 速率 angle的值为0时,方块会水平向右移动,随着值的增大,方块会顺时针改变角度。不过我们要模拟现实中的重力,所以该属性一般不设置,不设置时默认是垂直向下移动。magnitude是重力行为的速率属性,值越大下降的速度越快,当magnitude属性的值为0时,方块就不会下降了,所以最小的速率是0.1。
func setAngle(angle: CGFloat, magnitude: CGFloat)//角度和速率一起设置
4.推动行为(UIPushBehavior):通过对象UIPushBehavior给动力项指定一个持续的或者瞬时的力(force vector)。
(1) UIPushBehavior实例化方法及管理:
init!(items: [AnyObject]!, mode: UIPushBehaviorMode)
func addItem(item: UIDynamicItem)
func removeItem(item: UIDynamicItem)
var items: [AnyObject] { get }
func targetOffsetFromCenterForItem(item: UIDynamicItem) -& UIOffset // 偏移
func setTargetOffsetFromCenter(o: UIOffset, forItem item: UIDynamicItem)
var mode: UIPushBehaviorMode { get } // 推送的模式
var active: Bool // 是否活动
var angle: CGFloat // 角度
// A continuous force vector with a magnitude of 1.0, applied to a 100 point x 100 point view whose density value is 1.0, results in view acceleration of 100 points per s^2
var magnitude: CGFloat //速率
var pushDirection: CGVector //推送的航向趋势
func setAngle(angle: CGFloat, magnitude: CGFloat) //设置角度和速率
5.捕捉行为(UISnapBehavior):通过对象UISnapBehavior给动力项指定一个捕捉点。动力项会根据配置的效果,来抓住这一捕捉点。
(1) UISnapBehavior实例化方法及管理
// The point argument is expressed in the reference coordinate system
init!(item: UIDynamicItem, snapToPoint point: CGPoint)
var damping: CGFloat // damping value from 0.0 to 1.0. 0.0 is the least oscillation.
6.动力元素行为(UIDynamicItemBehavior)
(1) UIDynamicItemBehavior
步骤1.使用init方法创建UICollisionBehavior,使用addItem: 方法向其添加dynamic item 或者使用initWithItems:实例化UIDynamicItemBehavior。
2. 使用addBehavior: 方法将UIDynamicItemBehavior加入到动力动画
(2) UIDynamicItemBehavior实例化方法及管理:
init(items: [AnyObject])
func addItem(item: UIDynamicItem)
func removeItem(item: UIDynamicItem)
var items: [AnyObject] { get }
var elasticity: CGFloat // 设置碰撞弹性系数。范围(0.0-1.0)
var friction: CGFloat // 设置摩擦系数。
var density: CGFloat // 设置相对密度 1 by default
var resistance: CGFloat // 线性阻力系数。(0--CGFLOAT_MAX)
var angularResistance: CGFloat // 设置角度阻力系数(0--CGFLOAT_MAX)
var allowsRotation: Bool // 设置行为中的dynamic item是否可以循环
// The linear velocity, expressed in points per second, that you want to add to the specified dynamic item
// If called before being associated to an animator, the behavior will accumulate values until being associated to an animator
func addLinearVelocity(velocity: CGPoint, forItem item: UIDynamicItem)//向dynamic item增加线速度属性。单位点
func linearVelocityForItem(item: UIDynamicItem) -& CGPoint
// The angular velocity, expressed in radians per second, that you want to add to the specified dynamic item
// If called before being associated to an animator, the behavior will accumulate values until being associated to an animator
func addAngularVelocity(velocity: CGFloat, forItem item: UIDynamicItem)//向dynamic item增加角速度属性。单位弧度
func angularVelocityForItem(item: UIDynamicItem) -& CGFloat
注意: 如果向同一个动力动画添加多个UIDynamicItemBehavior实例,只会应用一套属性描述(交集?)多个UIDynamicItemBehavior实例配置同个属性时,使用最后的。
(2)物理仿真行为须知
上述所有物理仿真行为都继承自UIDynamicBehavior
UIDynamicBehavior配置:
func addChildBehavior(behavior: UIDynamicBehavior!)//向自定义的UIDynamicBehavior添加子行为
func removeChildBehavior(behavior: UIDynamicBehavior)//删除自定义的UIDynamicBehavior的子行为
var childBehaviors: [AnyObject] { get }//返回自定义UIDynamicBehavior的子行为数组
// When running, the dynamic animator calls the action block on every animation step.
var action: (() -& Void)!//在UIDynamicAnimator运行过程中每一步都会调用的语句块
func willMoveToAnimator(dynamicAnimator: UIDynamicAnimator?) // nil when being removed from an animator
var dynamicAnimator: UIDynamicAnimator? { get }
4.物理仿真器
(1)物理仿真器须知
它可以让物理仿真元素执行物理仿真行为
它是UIDynamicAnimator类型的对象
& 提供动力行为的上下文
& 根据ref view确定坐标系
& 控制动力引擎
& 维护着动力行为的状态
(2)UIDynamicAnimator的初始化
init(referenceView view: UIView)
view参数:是一个参照视图,表示物理仿真的范围
(3)UIDynamicAnimator的常见方法
func addBehavior(behavior: UIDynamicBehavior!)//添加1个物理仿真行为
func removeBehavior(behavior: UIDynamicBehavior!)//移除1个物理仿真行为
func removeAllBehaviors()//移除之前添加过的所有物理仿真行为
func itemsInRect(rect: CGRect) -& [AnyObject]//返回贯穿指定区域的所有dynamic item。
func elapsedTime() -& NSTimeInterval//返回动画开始到现在的时间间隔。
func updateItemUsingCurrentState(item: UIDynamicItem)//(更新dynamic item在UIDynamicAnimator内部的代表的状态),dynamic item被加入到UIDynamicAnimator后,你更改了dynamic item的状态,你应该使用这个方法更新dynamic item的状态
init(collectionViewLayout layout: UICollectionViewLayout) //在collection views上使用动力动画,collection view layout的坐标系作为动力行为和动力项的坐标系。动力项必须为UICollectionViewLayoutAttributes对象。可使用 setTranslatesReferenceBoundsIntoBoundaryWithInsets:设置碰撞动力界限(相对于 collection view layout的坐标系),当collection view layout发生改变时,会自动调用invalidateLayout、暂停、重新开始动力
func layoutAttributesForCellAtIndexPath(indexPath: NSIndexPath) -& UICollectionViewLayoutAttributes!//返回指定位置collection view cell的布局属性
func layoutAttributesForSupplementaryViewOfKind(kind: String, atIndexPath indexPath: NSIndexPath) -& UICollectionViewLayoutAttributes!//返回indexPath位置上collection view cell的指定(用kind指定)SupplementaryView的布局属性。
func layoutAttributesForDecorationViewOfKind(decorationViewKind: String, atIndexPath indexPath: NSIndexPath) -& UICollectionViewLayoutAttributes!//返回indexPath位置上collection view cell的指定(用decorationViewKind指定)decorationView的布局属性。
(4)UIDynamicAnimator的常见属性
var referenceView: UIView? { get }//参照视图
var behaviors: [AnyObject] { get }//添加到物理仿真器中的所有物理仿真行为
var running: Bool { get }//是否正在进行物理仿真
unowned(unsafe) var delegate: UIDynamicAnimatorDelegate?//代理对象(能监听物理仿真器的仿真过程,比如开始和结束)
(5) UIDynamicAnimator的代理
protocol UIDynamicAnimatorDelegate : NSObjectProtocol {
optional func dynamicAnimatorWillResume(animator: UIDynamicAnimator)//UIDynamicAnimator将要启动的时候会调用
optional func dynamicAnimatorDidPause(animator: UIDynamicAnimator)//UIDynamicAnimator已经停止的时候会调用

我要回帖

更多关于 51仿真器 的文章

 

随机推荐