如何在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的动画中使视图振动? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SwiftUI 中使视图的高度从 0 动画到高度?

如何在 Laravel 5.8 中使 chart.js 动画/增长/活着?

如何在objective-c中使UIImage为NULL

如何在objective-c中使对象在整个应用程序中保持活动状态

如何在ios objective-c 应用程序中使屏幕的全部内容滚动

Objective-c 隐藏视图动画