如何在objective-c的动画中使视图振动? [关闭]
Posted
技术标签:
【中文标题】如何在objective-c的动画中使视图振动? [关闭]【英文标题】:How to make a view vibrate in an animation in objective-c? [closed] 【发布时间】:2014-03-21 18:58:44 【问题描述】:我有一个名为 qShake 的 UIView。当用户出错时,我希望该视图在一小段时间内从左到右晃动。我将如何创建动画来做到这一点?
【问题讨论】:
请澄清您的问题?你想做什么。 该代码不是很相关,它没有做任何类似于动画的事情。你有一些动画尝试的代码吗? 我的 UIView 被称为 qShake! 【参考方案1】:您可以使用 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"];
【讨论】:
由于您只是更改位置的 x 值,因此您可以为 @"position.x" 属性设置动画。他们不必处理 NSValue。此外,对于相对动画(像这样),您可以使用byValue
而不是 toValue
,这样您就不必将 20 添加到当前值。
酷,很高兴知道。我会尝试一下并更新答案。
@DavidRönnqvist 谢谢,这很好用,而且代码更简洁!以上是关于如何在objective-c的动画中使视图振动? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 5.8 中使 chart.js 动画/增长/活着?
如何在objective-c中使对象在整个应用程序中保持活动状态