#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代表加速度是1000 points /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:(nullable id)identifier atPoint:(CGPoint)p
- (void)collisionBehavior:(UICollisionBehavior*)behavior endedContactForItem:(id)item withBoundaryIdentifier:(nullable id)identifier
(4)addBoundaryWithIdentifier:forPath:添加路径 为边境
(5)- (nullable UIBezierPath *)boundaryWithIdentifier:(id)identifier
(6)addBoundaryWithIdentifier:fromPoint:toPoint:添加一条线为边境
(7)removeBoundaryWithIdentifier 移除
(8)translatesReferenceBoundsIntoBoundary是否 以参照视图作为边界
(9)setTranslatesReferenceBoundsIntoBoundaryWithInsets:设置参照视图的内间距
《3》UIPushBehavior
《4》UISnapBehavior
《5》UIAttachmentBehavior
《6》UIDynamicItemBehavior
网友评论