1.6甩行为UISnapBehavior
(一)碰撞行为UICollisionBehavior作用
作用:可以将view通过动画甩到某一个点
(二)常用属性和方法
// 初始化一个甩行为
- (instancetype)initWithItem:(id <UIDynamicItem>)item snapToPoint:(CGPoint)point;
// 具体甩到哪一个点
@property (nonatomic, assign) CGPoint snapPoint;
// 震荡幅度 值从0.0到0.1 值越大幅度越小,反之越大 默认为0.5
@property (nonatomic, assign) CGFloat damping;
示例代码:
// 当点击屏幕的时候将一个红色的view甩到手指所在的点上
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
// 获取UITouch对象
UITouch *t = touches.anyObject;
// 获得当前手指所在屏幕的点
CGPoint p = [t locationInView:self.view];
// 1.创建仿真器
self.animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view];
// 2.创建仿真行为
UISnapBehavior *snap = [[UISnapBehavior alloc] initWithItem:self.redView snapToPoint:p];
// 设置震荡幅度 从0.0 到1.0 值越大震荡幅度越小 ,反之越大 默认为0.5
snap.damping = 1;
// 3.将仿真行为添加到仿真器
[self.animator addBehavior:snap];
}