在很多情况下,您需要“摇动”一个 UIView。
(例如,“将孩子的注意力吸引到控件上”、“连接速度慢”、“用户输入错误”等等。)
使用 UIKit Dynamics 可以做到这一点吗?
所以你必须..
取景,例如在 0,0
添加弹簧概念
轻推一下,说“向左”
它应该在弹簧上前后摆动,最终再次稳定到 0,0
这可能吗?我在 Apple 演示中找不到示例。干杯
请注意,正如 Niels 在下面敏锐地解释的那样,对于某些情况,弹簧不一定是您想要的“物理感觉”:在其他情况下,它可能是完美的。据我所知, iOS 自己的应用程序(例如消息等)中的所有物理特性现在都使用 UIKit 动态,所以对我来说,处理“UIView 在弹簧上弹跳”是值得的。
为了清楚起见,你当然可以做一些“类似”的事情,只需要一个动画。例子...
但这根本没有与 iOS 其他部分相同的“物理感觉”,现在。
-(void)userInputErrorShake
{
[CATransaction begin];
CAKeyframeAnimation * anim =
[CAKeyframeAnimation animationWithKeyPath:@"transform"];
anim.values = @[
[NSValue valueWithCATransform3D:
CATransform3DMakeTranslation(-4.0f, 0.0f, 0.0f) ],
[NSValue valueWithCATransform3D:
CATransform3DMakeTranslation(4.0f, 0.0f, 0.0f) ]
];
anim.autoreverses = YES;
anim.repeatCount = 1.0f;
anim.duration = 0.1f;
[CATransaction setCompletionBlock:^{}];
[self.layer addAnimation:anim forKey:nil];
[CATransaction commit];
}