UIDynamicAnimator 顺序动画
UIDynamicAnimator sequential animation
我正在尝试制作从菜单按钮中弹出的按钮(类似于 Path 上的 + 按钮)并使用 UIDynamicAnimator 为按钮的进出设置动画。它有效并且代码非常简单。
_animator = [[UIDynamicAnimator alloc] initWithReferenceView:sender.superview];
UIDynamicItemBehavior *resistance = [[UIDynamicItemBehavior alloc] initWithItems:@[_cartBtn, _chatBtn, _eventBtn]];
resistance.resistance = 5.0f;
[_animator addBehavior:resistance];
CGFloat radius = 75;
CGPoint target = sender.center;
target.x += radius * cos(GLKMathDegreesToRadians(265));
target.y += radius * sin(GLKMathDegreesToRadians(265));
UISnapBehavior *snapBehavior = [[UISnapBehavior alloc] initWithItem:_cartBtn snapToPoint:target];
[_animator addBehavior:snapBehavior];
target = sender.center;
target.x += radius * cos(GLKMathDegreesToRadians(225));
target.y += radius * sin(GLKMathDegreesToRadians(225));
UISnapBehavior *snapBehavior2 = [[UISnapBehavior alloc] initWithItem:_chatBtn snapToPoint:target];
[_animator addBehavior:snapBehavior2];
target = sender.center;
target.x += radius * cos(GLKMathDegreesToRadians(185));
target.y += radius * sin(GLKMathDegreesToRadians(185));
UISnapBehavior *snapBehavior3 = [[UISnapBehavior alloc] initWithItem:_eventBtn snapToPoint:target];
[_animator addBehavior:snapBehavior3];
这样,所有三个按钮一起弹出。我想问的是,是否可以使用 UIDynamicAnimator 或其他简单的方法让按钮 一个接一个 动画化?
显然我只需要在 addBehavior:
之间添加一个像 [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
这样的微小延迟
我正在尝试制作从菜单按钮中弹出的按钮(类似于 Path 上的 + 按钮)并使用 UIDynamicAnimator 为按钮的进出设置动画。它有效并且代码非常简单。
_animator = [[UIDynamicAnimator alloc] initWithReferenceView:sender.superview];
UIDynamicItemBehavior *resistance = [[UIDynamicItemBehavior alloc] initWithItems:@[_cartBtn, _chatBtn, _eventBtn]];
resistance.resistance = 5.0f;
[_animator addBehavior:resistance];
CGFloat radius = 75;
CGPoint target = sender.center;
target.x += radius * cos(GLKMathDegreesToRadians(265));
target.y += radius * sin(GLKMathDegreesToRadians(265));
UISnapBehavior *snapBehavior = [[UISnapBehavior alloc] initWithItem:_cartBtn snapToPoint:target];
[_animator addBehavior:snapBehavior];
target = sender.center;
target.x += radius * cos(GLKMathDegreesToRadians(225));
target.y += radius * sin(GLKMathDegreesToRadians(225));
UISnapBehavior *snapBehavior2 = [[UISnapBehavior alloc] initWithItem:_chatBtn snapToPoint:target];
[_animator addBehavior:snapBehavior2];
target = sender.center;
target.x += radius * cos(GLKMathDegreesToRadians(185));
target.y += radius * sin(GLKMathDegreesToRadians(185));
UISnapBehavior *snapBehavior3 = [[UISnapBehavior alloc] initWithItem:_eventBtn snapToPoint:target];
[_animator addBehavior:snapBehavior3];
这样,所有三个按钮一起弹出。我想问的是,是否可以使用 UIDynamicAnimator 或其他简单的方法让按钮 一个接一个 动画化?
显然我只需要在 addBehavior:
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
这样的微小延迟