【发布时间】:2014-03-21 18:58:44
【问题描述】:
我有一个名为 qShake 的 UIView。当用户出错时,我希望该视图在一小段时间内从左到右晃动。我将如何创建动画来做到这一点?
【问题讨论】:
-
请澄清您的问题?你想做什么。
-
该代码不是很相关,它没有做任何类似于动画的事情。你有一些动画尝试的代码吗?
-
我的 UIView 被称为 qShake!
我有一个名为 qShake 的 UIView。当用户出错时,我希望该视图在一小段时间内从左到右晃动。我将如何创建动画来做到这一点?
【问题讨论】:
您可以使用 CABasicAnimation,并将重复计数设置为一些较小的值,同时为要振动的 view.layer 的位置设置动画。请注意,视图的clipsToBounds 必须设置为 NO。还要确保在项目中包含 QuartzCore 框架。
- (void)shakeView:(UIView *)view
{
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position.x"];
animation.duration = 0.1;
animation.byValue = @(20);
animation.autoreverses = YES;
animation.repeatCount = 10;
[view.layer addAnimation:animation forKey:@"Shake"];
}
【讨论】:
byValue 而不是 toValue,这样您就不必将 20 添加到当前值。