美文网首页
5.4 iOS重力行为UIGravityBehavior

5.4 iOS重力行为UIGravityBehavior

作者: 刘2傻 | 来源:发表于2016-12-31 13:09 被阅读58次

1.4重力行为UIGravityBehavior

(一)UIGravityBehavior作用

作用:给定重力方向和加速度,让物体朝着重力方向掉落.

(二)常用属性和方法

常用属性

// 添加到重力仿真行为中的所有仿真元素
@property (nonatomic, readonly, copy) NSArray<id <UIDynamicItem>> *items;
// 重力方向(是一个二维向量)
@property (readwrite, nonatomic) CGVector gravityDirection;
// 重力方向(是一个角度,以x轴正方向为0°,顺时针正数,逆时针负数)
@property (readwrite, nonatomic) CGFloat angle;
// 量级(用来控制加速度,1.0代表加速度是1000 points /second²)
@property (readwrite, nonatomic) CGFloat magnitude;

常用方法

// 初始化一个重力行为 items:代表重力行为作用的所有仿真元素
- (instancetype)initWithItems:(NSArray<id <UIDynamicItem>> *)items;
// 为重力仿真行为添加一个仿真元素
- (void)addItem:(id <UIDynamicItem>)item;
// 为重力仿真行为移除一个仿真元素
- (void)removeItem:(id <UIDynamicItem>)item;

示例代码:

// 当点击屏幕的时候调用该方法
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    // 1.创建一个动画者对象并且作用范围为当前控制器view
    self.animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view];
    
    // 2.创建动力学行为,并添加作用的动力学元素(红色view)
    UIGravityBehavior *gravityBehavior = [[UIGravityBehavior alloc] initWithItems:@[self.redView]];

    // 使用向量设置重力的方向
    gravityBehavior.gravityDirection = CGVectorMake(1,5);
    // 使用弧度设置重力的方向
    gravityBehavior.angle = M_PI * 2;
    // 设置量级
    gravityBehavior.magnitude = 10;
    // 3.将动力学行为添加到动画者
    [self.animator addBehavior:gravityBehavior];
}

相关文章

网友评论

      本文标题:5.4 iOS重力行为UIGravityBehavior

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