物理仿真器
UIDynamicAnimator的常見方法
-?(void)addBehavior:(UIDynamicBehavior*)behavior;
// 添加1個(gè)物理仿真行為
-?(void)removeBehavior:(UIDynamicBehavior*)behavior;
// 移除1個(gè)物理仿真行為
-?(void)removeAllBehaviors;
// 移除之前添加過的所有物理仿真行為
UIDynamicAnimator的常見屬性
@property(nonatomic,readonly)UIView*referenceView;
// 參照視圖
@property(nonatomic,readonly,copy)NSArray*?behaviors;
// 添加到物理仿真器中的所有物理仿真行為
@property(nonatomic,readonly,getter=isRunning)BOOLrunning;
// 是否正在進(jìn)行物理仿真
@property(nonatomic,assign)id?delegate;
// 代理對(duì)象(能監(jiān)聽物理仿真器的仿真過程,比如開始和結(jié)束)
重力行為(UIGravityAnimator)
簡(jiǎn)介
給定重力方向、加速度蹋岩,讓物體朝著重力方向掉落
//UIGravityBehavior的初始化
-?(instancetype)initWithItems:(NSArray*)items;
//item參數(shù):里面存放著物理仿真元素
UIGravityBehavior常見方法
-?(void)addItem:(id)item;
// 添加1個(gè)物理仿真元素
-?(void)removeItem:(id)item;
?// 移除1個(gè)物理仿真元素
UIGravityBehavior常見屬性
@property(nonatomic, readonly, copy)NSArray*?items;
// 添加到重力行為中的所有物理仿真元素
@property(readwrite, nonatomic)CGVector gravityDirection;
// 重力方向(是一個(gè)二維向量)
@property(readwrite, nonatomic)CGFloat angle;
// 重力方向(是一個(gè)角度,以x軸正方向?yàn)?°匾七,順時(shí)針正數(shù),逆時(shí)針負(fù)數(shù))
@property(readwrite, nonatomic)CGFloat magnitude;
// 量級(jí)(用來控制加速度,1.0代表加速度是1000points/second2)
碰撞行為(UICollisionBehavior)
簡(jiǎn)介
可以讓物體之間實(shí)現(xiàn)碰撞效果
可以通過添加邊界(boundary)氓轰,讓物理碰撞局限在某個(gè)空間中
lUICollisionBehavior邊界相關(guān)的方法
-?(void)addBoundaryWithIdentifier:(id)identifierforPath:(UIBezierPath*)bezierPath;
-?(void)addBoundaryWithIdentifier:(id)identifierfromPoint:(CGPoint)p1toPoint:(CGPoint)p2;
-?(UIBezierPath*)boundaryWithIdentifier:(id)identifier;
-?(void)removeBoundaryWithIdentifier:(id)identifier;
@property(nonatomic,readonly,copy)NSArray*boundaryIdentifiers;
-?(void)removeAllBoundaries;
UICollisionBehavior常見用法
@property(nonatomic,readwrite)BOOLtranslatesReferenceBoundsIntoBoundary;
是否以參照視圖的bounds為邊界
-?(void)setTranslatesReferenceBoundsIntoBoundaryWithInsets:(UIEdgeInsets)insets;
設(shè)置參照視圖的bounds為邊界尸执,并且設(shè)置內(nèi)邊距
@property(nonatomic,readwrite)UICollisionBehaviorModecollisionMode;
碰撞模式(分為3種家凯,元素碰撞、邊界碰撞如失、全體碰撞)
@property(nonatomic,assign,readwrite)idcollisionDelegate;
代理對(duì)象(可以監(jiān)聽元素的碰撞過程)
捕捉行為(UISnapBehavior)
簡(jiǎn)介
可以讓物體迅速?zèng)_到某個(gè)位置(捕捉位置)绊诲,捕捉到位置之后會(huì)帶有一定的震動(dòng)
UISnapBehavior的初始化
-?(instancetype)initWithItem:(id)itemsnapToPoint:(CGPoint)point;
UISnapBehavior常見屬性
@property(nonatomic,assign)CGFloatdamping;
用于減幅、減震(取值范圍是0.0~1.0褪贵,值越大掂之,震動(dòng)幅度越小)
UISnapBehavior使用注意
如果要進(jìn)行連續(xù)的捕捉行為脆丁,需要先把前面的捕捉行為從物理仿真器中移除