如何创建UIView波纹圈动画?

时间:2015-07-28 15:13:02

标签: ios objective-c swift animation uiview

我想像这个链接一样创建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中创建相同的东西。请帮助我

2 个答案:

答案 0 :(得分:4)

您的代码的以下几行看起来很好:

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方法添加子视图后调用它。

答案 1 :(得分:1)

希望这可以帮助你Sample class

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

要了解它可以用于什么以及如何使用它,请查看blog post