UIDynamic

作者: Hevin_Chen | 来源:发表于2016-09-21 13:19 被阅读23次

    物理仿真器

    UIDynamicAnimator的常见方法

    - (void)addBehavior:(UIDynamicBehavior*)behavior;

    // 添加1个物理仿真行为

    - (void)removeBehavior:(UIDynamicBehavior*)behavior;

    // 移除1个物理仿真行为

    - (void)removeAllBehaviors;

    // 移除之前添加过的所有物理仿真行为

    UIDynamicAnimator的常见属性

    @property(nonatomic,readonly)UIView*referenceView;

    // 参照视图

    @property(nonatomic,readonly,copy)NSArray* behaviors;

    // 添加到物理仿真器中的所有物理仿真行为

    @property(nonatomic,readonly,getter=isRunning)BOOLrunning;

    // 是否正在进行物理仿真

    @property(nonatomic,assign)id delegate;

    // 代理对象(能监听物理仿真器的仿真过程,比如开始和结束)

    重力行为(UIGravityAnimator)

    简介

    给定重力方向、加速度,让物体朝着重力方向掉落

    //UIGravityBehavior的初始化

    - (instancetype)initWithItems:(NSArray*)items;

    //item参数:里面存放着物理仿真元素

    UIGravityBehavior常见方法

    - (void)addItem:(id)item;

    // 添加1个物理仿真元素

    - (void)removeItem:(id)item;

     // 移除1个物理仿真元素

    UIGravityBehavior常见属性

    @property(nonatomic, readonly, copy)NSArray* items;

    // 添加到重力行为中的所有物理仿真元素

    @property(readwrite, nonatomic)CGVector gravityDirection;

    // 重力方向(是一个二维向量)

    @property(readwrite, nonatomic)CGFloat angle;

    // 重力方向(是一个角度,以x轴正方向为0°,顺时针正数,逆时针负数)

    @property(readwrite, nonatomic)CGFloat magnitude;

    // 量级(用来控制加速度,1.0代表加速度是1000points/second²)

    碰撞行为(UICollisionBehavior)

    简介

    可以让物体之间实现碰撞效果

    可以通过添加边界(boundary),让物理碰撞局限在某个空间中

    lUICollisionBehavior边界相关的方法

    - (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;

    设置参照视图的bounds为边界,并且设置内边距

    @property(nonatomic,readwrite)UICollisionBehaviorModecollisionMode;

    碰撞模式(分为3种,元素碰撞、边界碰撞、全体碰撞)

    @property(nonatomic,assign,readwrite)idcollisionDelegate;

    代理对象(可以监听元素的碰撞过程)

    捕捉行为(UISnapBehavior)

    简介

    可以让物体迅速冲到某个位置(捕捉位置),捕捉到位置之后会带有一定的震动

    UISnapBehavior的初始化

    - (instancetype)initWithItem:(id)itemsnapToPoint:(CGPoint)point;

    UISnapBehavior常见属性

    @property(nonatomic,assign)CGFloatdamping;

    用于减幅、减震(取值范围是0.0~1.0,值越大,震动幅度越小)

    UISnapBehavior使用注意

    如果要进行连续的捕捉行为,需要先把前面的捕捉行为从物理仿真器中移除

    相关文章

      网友评论

          本文标题:UIDynamic

          本文链接:https://www.haomeiwen.com/subject/nyraettx.html