【问题标题】:How to make a view vibrate in an animation in objective-c? [closed]如何在objective-c的动画中使视图振动? [关闭]
【发布时间】:2014-03-21 18:58:44
【问题描述】:

我有一个名为 qShake 的 UIView。当用户出错时,我希望该视图在一小段时间内从左到右晃动。我将如何创建动画来做到这一点?

【问题讨论】:

  • 请澄清您的问题?你想做什么。
  • 该代码不是很相关,它没有做任何类似于动画的事情。你有一些动画尝试的代码吗?
  • 我的 UIView 被称为 qShake!

标签: ios animation uiview


【解决方案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 谢谢,这很好用,而且代码更简洁!
猜你喜欢
  • 1970-01-01
  • 2021-09-12
  • 2016-02-23
  • 1970-01-01
  • 2014-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-03
相关资源
最近更新 更多