你的位置:首页 > 软件开发 > 操作系统 > iOS动画——DynamicAnimate

iOS动画——DynamicAnimate

发布时间:2015-08-19 18:00:51
力学动画以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

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。