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];
}
网友评论