#pragma mark---知识点---
1、简介:属于UIKit
(1)什么是动力行为?
模拟真实世界中力学相关的动画和交互系统
(2)可以实现的效果
重力、碰撞、吸附、推动、捕捉效果,并且可以组合
(3)ios9
UIDynamicItemGroup可以统一给一组元素添加动力行为
(4)ios9可以定义成以球形的方式去接触另一个边境或元素
2、类名介绍
(1)UIDynamicAnimation动力效果的动画播放者
《1》initWithReferenceView初始化动力效果播放者并制定参考视图
《2》addBehavior:添加动力行为
《3》removeBehavior:移除某个动力行为
《4》removeAllBehaviors移除所有动力行为
《5》delegate代理
(2)动力效果的动画行为
《1》UIGravityBehavior重力效果行为会影响到动力元素的属性(frame)
1.initWithItems:初始化重力效果行为并指定作用对象
2.addItem:添加重力效果作用对象
3.removeItem:移除作用对象
4.gravityDirection重力的方向
CGVector:表示矢量的结构体值:0-1
x:横向重力
y:竖向重力
受加速度的影响
5.Angle:更改重力效果的角度
6.magnitude:加速度的级别1.0代表加速度是1000points /second²
7.setAngle:magnitude:设置重力方向的角度和速度
《2》UICollisionBehavior碰撞行为
(1)initWithItems:
(2)collisionMode:
UICollisionBehaviorModeItems元素碰撞
UICollisionBehaviorModeBoundaries边境碰撞
UICollisionBehaviorModeEverything所有都可以碰撞
(3)collisionDelegate碰撞效果的代理
元素碰撞的时候调用
- (void)collisionBehavior:(UICollisionBehavior *)behavior
beganContactForItem:(id)item1 withItem:(id)item2 atPoint:(CGPoint)p
- (void)collisionBehavior:(UICollisionBehavior *)behavior
endedContactForItem:(id)item1 withItem:(id)item2
边境碰撞的时候调用
- (void)collisionBehavior:(UICollisionBehavior*)behavior
beganContactForItem:(id)item withBoundaryIdentifier:(nullableid)identifier atPoint:(CGPoint)p
- (void)collisionBehavior:(UICollisionBehavior*)behavior
endedContactForItem:(id)item withBoundaryIdentifier:(nullableid)identifier
(4)addBoundaryWithIdentifier:forPath:添加路径为边境
(5)- (nullableUIBezierPath *)boundaryWithIdentifier:(id)identifier
(6)addBoundaryWithIdentifier:fromPoint:toPoint:添加一条线为边境
(7)removeBoundaryWithIdentifier移除
(8)translatesReferenceBoundsIntoBoundary是否以参照视图作为边界
(9)setTranslatesReferenceBoundsIntoBoundaryWithInsets:设置参照视图的内间距
《3》UIPushBehavior
《4》UISnapBehavior
《5》UIAttachmentBehavior
《6》UIDynamicItemBehavior