如何创建 UIView 波纹圆圈动画?

Posted

技术标签:

【中文标题】如何创建 UIView 波纹圆圈动画?【英文标题】:How to create UIView ripple circle animation? 【发布时间】:2015-07-28 15:13:01 【问题描述】:

我想像这个链接一样创建 UIView 动画

css3 ripple effect example

我已经在 ViewDidLoad() 中尝试了所有这些代码,但没有工作

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(200, 200, 100, 100)];
    view.backgroundColor = [UIColor blueColor];

    CATransition *animation=[CATransition animation];
    [animation setDelegate:self];
    [animation setDuration:1.75];
    [animation setTimingFunction:UIViewAnimationCurveEaseInOut];
    [animation setType:@"rippleEffect"];

    [animation setFillMode:kCAFillModeRemoved];
    animation.endProgress=1;
    [animation setRemovedOnCompletion:NO];
    [view.layer addAnimation:animation forKey:nil];
    [self.view addSubview:view];

我想在 ios 中创建相同的东西。请帮助我

【问题讨论】:

尝试运行这是'viewDidAppear'。它可能在视图变得可见之前完成动画。 在视图中不工作也出现了 看不到那个链接,你能解释一下你到底想要什么吗? 你能打开这个链接,这样你就可以看到一个涟漪圈效果..就像 tinder 应用程序中的主屏幕 codepen.io/seansean11/pen/dhwzj 【参考方案1】:

以下代码行看起来不错:

CATransition *animation=[CATransition animation];
[animation setDelegate:self];
[animation setDuration:1.75];
[animation setTimingFunction:UIViewAnimationCurveEaseInOut];
[animation setType:@"rippleEffect"];
[view.layer addAnimation:animation forKey:nil];

但是,问题在于您在将视图添加到其父视图之前应用了动画。这显然行不通!

尝试添加子视图然后应用动画。我也希望这不会起作用。

如果您在viewDidLoad 方法中将此视图添加到其父视图。在 ViewDidAppear 或 ViewWillAppear 方法中应用动画。

否则,请创建一个单独的方法来应用动画。并在添加子视图后通过调用performSelector:withObject:afterDelay 方法调用它。

【讨论】:

【参考方案2】:

希望对你有帮助Sample class

UIView+Glow 是 UIView 上的一个类别,它增加了对使视图发光的支持(用于突出显示屏幕的一部分以鼓励用户与之交互)。

要了解它的用途和使用方法,请查看blog post

【讨论】:

以上是关于如何创建 UIView 波纹圆圈动画?的主要内容,如果未能解决你的问题,请参考以下文章

位图而不是视图上的波纹动画

Polymer - 波纹动画扭曲英雄动画

波纹动画颤动

imageview 上的波纹效果

如何使用 HTML5 Canvas 制作水波纹效果

iOS CAReplicatorLayer动画,水波纹动画