如何在 iOS 7 下对 UIButton 产生涟漪效果? [复制]
Posted
技术标签:
【中文标题】如何在 iOS 7 下对 UIButton 产生涟漪效果? [复制]【英文标题】:How do I do a ripple effect on a UIButton under iOS 7? [duplicate] 【发布时间】:2013-11-01 04:26:03 【问题描述】:当我点击我的UIButton
时,我希望有一个涟漪效应,基本上是几个圆圈从中散发出来,同时增加和降低它们的不透明度。
我最初的反应是让几个UIImageView
s 的圆圈和CGAffineTransformMakeScale
的尺寸稍大一些,同时降低它们的alpha
。但我觉得这不是最好的选择,因为它似乎只是为了看起来很愚蠢而创建图像,并且可能会产生一些不必要的偷听。
完成此任务的最佳方法是什么?如果您不使用私有 API,则会获得奖励积分。
【问题讨论】:
***.com/questions/5973530/… @PratyushaTerli 这是一个私有 API,没有奖励积分。 :P @Doug 无论有什么可用的解决方案,请不要重复同样的问题 @DougSmith 你是初学者吗?你认为 UIView 动画是私有 API 吗?或者您对私有 API 有其他定义? 这被错误地标记为重复。另一个问题是指使用 OpenGL 或类似方法向 UIImageView 添加波纹扭曲效果。这个问题是询问如何在点击按钮后添加从按钮后面扩展的环。完全不同的问题和答案。 【参考方案1】:您可以在按钮后面添加几个透明的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 应用中的徽标动画中使用了这种方法。 (不是插头!) 只需在应用商店中搜索它即可了解我的意思,它是免费的,并且我所指的动画位于第一个启动屏幕上。显然,在您的情况下,您也可以淡出不透明度。
虽然您可以查看更复杂的涟漪效果,这些效果会使周围的视图变形,但如上所示的简单扁平环更符合 ios7 的扁平设计,尽管我猜这取决于您的应用程序的风格。
【讨论】:
以上是关于如何在 iOS 7 下对 UIButton 产生涟漪效果? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 7 中使用 UIScrollView 在 iOS 中创建水平滚动 UIButton
UIButton iOS 7 跟随 UIKeyboard 动画