1

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

我最初的反应是有几个UIImageViews 的圆圈和CGAffineTransformMakeScale稍大的尺寸,同时降低它们alpha。但我觉得这不是最好的选择,因为它似乎只是为了看起来很愚蠢而创建图像,并且可能会产生一些不必要的偷听。

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

4

1 回答 1

5

UIView您可以在按钮后面创建几个添加透明的 s。像这样设置它们(伪代码):

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

这将创建在运行时渲染的环(而不是图像)。然后你可以使用CGAffineTransformMakeScale.

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

虽然您可以查看更复杂的涟漪效果,使它们周围的视图变形,但如上所示的简单扁平环更符合 iOS7 的扁平化设计,尽管我猜这取决于您的应用程序的风格。

于 2013-11-01T04:56:33.573 回答