本文内容继续跟进上次的内容,也就是
UICollisionBehavior这个类。接下来我们继续学习和了解UIDynamicItemBehavior这个类。
在之前的几篇文章里,我们逐渐的帮助apple对象添加了两种属性,这些属性包括重力属性、碰撞属性。就之前学习的内容,可以清楚的感觉到,UIKit的UIDynamic 就是为了实现物理仿真。物体除了包括重力属性和可碰撞的边界属性。除了这些属性,生活中还有很多物理上物体还包括很多属性,最熟悉如摩擦力、阻力、质量密度等等。apple可以通过UIDynamicItemBehavior这个类来为自己添加上述的属性性,在使用UIDynamicItemBehavior之前,我们先首先简单的了解一下这个类中的属性:
- <span style="font-size:14px;">@property (nonatomic, readonly, copy) NSArray* items;
-
- @property (readwrite, nonatomic) CGFloat elasticity; // Usually between 0 (inelastic) and 1 (collide elastically) 弹性系数 在0~1之间
- @property (readwrite, nonatomic) CGFloat friction; // 0 being no friction between objects slide along each other 摩擦力系数
- @property (readwrite, nonatomic) CGFloat density; // 1 by default 跟size大小相关,计算物体块的质量。
- @property (readwrite, nonatomic) CGFloat resistance; // 0: no velocity damping 阻力系数
- @property (readwrite, nonatomic) CGFloat angularResistance; // 0: no angular velocity damping 旋转阻力
- @property (readwrite, nonatomic) BOOL allowsRotation; // force an item to never rotate 是否能旋转</span><span style="font-size:24px;">
- </span>
使用方法:
- <span style="font-size:14px;">@property (nonatomic, readonly, copy) NSArray* items;
- @property (readwrite, nonatomic) CGFloat elasticity; // Usually between 0 (inelastic) and 1 (collide elastically) 弹性系数 在0~1之间
- @property (readwrite, nonatomic) CGFloat friction; // 0 being no friction between objects slide along each other 摩擦力系数
- @property (readwrite, nonatomic) CGFloat density; // 1 by default 跟size大小相关,计算物体块的质量。
- @property (readwrite, nonatomic) CGFloat resistance; // 0: no velocity damping 阻力系数
- @property (readwrite, nonatomic) CGFloat angularResistance; // 0: no angular velocity damping 旋转阻力
- @property (readwrite, nonatomic) BOOL allowsRotation; // force an item to never rotate 是否能旋转</span><span style="font-size:24px;">
- </span>
- <span style="font-size:14px;"> UIDynamicItemBehavior * itemBehavior = [[UIDynamicItemBehavior alloc] initWithItems:@[apple]];
- itemBehavior.elasticity = 1.2;
- itemBehavior.friction = 1.;
- itemBehavior.density = 10;
- itemBehavior.resistance = 10;
- itemBehavior.allowsRotation = NO;
- itemBehavior.angularResistance = 1;
- [_animator addBehavior:itemBehavior];</span>
初始化之后,设置好所有的属性,为他们添加好适当的值。最后添加到_animator中。
点击关注我,更多精彩内容!!!
- <span style="font-size:14px;"> UIDynamicItemBehavior * itemBehavior = [[UIDynamicItemBehavior alloc] initWithItems:@[apple]];
- itemBehavior.elasticity = 1.2;
- itemBehavior.friction = 1.;
- itemBehavior.density = 10;
- itemBehavior.resistance = 10;
- itemBehavior.allowsRotation = NO;
- itemBehavior.angularResistance = 1;
- [_animator addBehavior:itemBehavior];</span>
群号:336146073