Ger*_*eri 9 animation uikit ios7 uikit-dynamics
我喜欢那个UISnapBehavior
片段,但是我真的想用它来向一个方向滑动,只是稍微摆动一下.
有没有办法关闭这种行为的旋转?
因为SpriteKit
有allowsRotation
可以轻易关闭的财产.
Alf*_*sen 27
您可以通过添加一个做到这一点UIDynamicItemBehavior
给你UIDynamicAnimator
,然后设置其allowsRotation
属性NO
,如下所示:
UIDynamicItemBehavior * dynamicItem = [[UIDynamicItemBehavior alloc] initWithItems:@[self.viewToSnap]];
dynamicItem.allowsRotation = NO;
[self.animator addBehavior:dynamicItem];
Run Code Online (Sandbox Code Playgroud)
Ger*_*eri 10
不需要UIKitDynamics
这个.
只需简单地使用:
[UIView animateWithDuration:0.5
delay:0.0
usingSpringWithDamping:0.65
initialSpringVelocity:0.5
options:0
animations:^
{
self.transform = (self.expanded) ? self.openedTransition : self.closedTransition;
}
completion:nil];
Run Code Online (Sandbox Code Playgroud)
Dan*_*nor 10
这是一个更好的答案:UISnapBehavior有一个action属性,它接受一个在每一步都被调用的块.像这样设置这个块......
snapBehavior.action = ^{ view.transform = CGAffineTransformIdentity; };
Run Code Online (Sandbox Code Playgroud)
...使旋转变为无效,没有任何其他副作用.