iOS - 动力行为

#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

你可能感兴趣的:(iOS - 动力行为)