如何在iOS 7下对UIButton进行连锁反应?

Dou*_*ith 1 core-animation objective-c uiview ios ios7

当我点击我的时候,UIButton我希望它有一个涟漪效应,基本上是从它发出的几个圆圈,同时增长和降低它们的不透明度.

我最初的反应是有几个UIImageView圆圈和CGAffineTransformMakeScale一个稍大的尺寸,同时降低它们alpha.但我觉得这不是最好的选择,因为它似乎只是因为它似乎很愚蠢而创建图像,它可能会产生一些不必要的无意中听到.

完成此任务的最佳方法是什么?如果您不使用私有API,则奖励积分.

Der*_*mot 5

您可以UIView在按钮后面添加几个Transparent .像这样设置它们(伪代码):

UIView *ripple = [UIView alloc] initWithFrame:(initial frame)];
[ripple setBackgroundColor:[UIColor clearColor]];
[ripple.layer setCornerRadius:ripple.bounds.size.height /2]; //Assuming square images
[ripple setBorderColor:[UIColor redColor].CGColor];
[ripple setBorderThickness:4]; //Or whatever thickness you want
Run Code Online (Sandbox Code Playgroud)

这将创建在运行时呈现的环(而不是图像).然后你可以使用它来制作它们的比例CGAffineTransformMakeScale.

我在GroovePond应用程序中使用这种方法对Logo的动画.(不是插件!)只是在应用程序商店中搜索它,看看我的意思,它是免费的,我所指的动画是在第一个启动屏幕上.显然,在你的情况下,你也可以淡化不透明度.

虽然您可以研究更复杂的涟漪效应,使周围的视图变形,但如上所示渲染的简单扁平环更符合iOS7的平面设计,尽管我猜这取决于您应用的风格.