力学动画以dynamicAnimate为首的力学动画是苹果在iOS7加入的API,里面包含了很多力学行为,这套API是基于Box2d实现的。其中包含了重力、碰撞、推、甩、和自定义行为。涉及到的类如下涉及类描述UIDynamicAnimator相当于一个manager,用于管理所有 ...
力学动画
以dynamicAnimate为首的力学动画是苹果在iOS7加入的API,里面包含了很多力学行为,这套API是基于Box2d实现的。其中包含了重力、碰撞、推、甩、和自定义行为。
涉及到的类如下
涉及类 | 描述 |
UIDynamicAnimator | 相当于一个manager,用于管理所有添加的力学行为 |
UIDynamicBehavior | 所有力学行为的父类,是一个抽象类 |
UIGravityBehavior | 重力 |
UICollisionBehavior | 碰撞,弹力 |
UIAttachmentBehavior | 吸附力 |
UIPushBehavior | 推力 |
UISnapBehavior | 甩行力 |
UIDynamicItemBehavior | 自定义行为 |
UIDynamicAnimator需要是一个实例变量,如果是局部变量动画会不起作用,个人感觉像是动作没有添加到RunLoop在函数执行结束后被释放了。
UIDynamicAnimator的初始化需要绑定一个视图,而且与视图必须是一对一的关系。
每一个行为都可以作用在很多的item上面,只要这个对象实现了<UIDynamicItem>协议,UIView默认就是所以不需要我们手动实现。
下面我们看几个例子来逐个解释
重力
重力很简单,我们先看一个demo
- (void)viewDidLoad { [super viewDidLoad]; view = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)]; view.backgroundColor = [UIColor grayColor]; [self.view addSubview:view]; _animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view]; UIGravityBehavior *gravity = [[UIGravityBehavior alloc] initWithItems:@[view]]; [gravity setAngle:3.14/2 magnitude:0.5]; [_animator addBehavior:gravity];
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:iOS动画——DynamicAnimate
关键词:IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。