具有现有仿射变换的UIKit Dynamics

Ale*_*Zak 8 uikit cgaffinetransform ios

我有一个视图,有一些规模转换.当我在它上面应用一些UIKit Dynamics时,它会将它们归零./:如何让它在跳转时保持视图上的现有转换?:P

谢谢.:)

Sco*_*ets 15

看看UIDynamicAnimator的updateItemUsingCurrentState.

动态动画师会自动读取您添加到其中的每个动态项目的初始状态(位置和旋转),然后负责更新项目的状态.如果在将动态项添加到动态动画制作者后主动更改动态项的状态,请调用此方法以请求动画师读取并合并新状态.

因此,只要您在转换的项目之后更改变换已添加到动画师,只需updateItemUsingCurrentState在之后立即调用.

id <UIDynamicItem> dynamicItem; // whatever your item is, probably a UIView
UIGravityBehavior *behavior = [[UIGravityBehavior alloc] initWithItems:@[dynamicItem]];
UIDynamicAnimator *animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view]; // or however you're getting your animator

[animator addBehavior:behavior];

view.transform = CGAffineTransformMakeScale(1.5, 1.5);
[animator updateItemUsingCurrentState:view];
Run Code Online (Sandbox Code Playgroud)