2013-11-01 27 views
1

當我點擊我的UIButton我想要有一個漣漪效應,基本上是從它發出的幾個圓,在同一時間增長和降低其不透明度。如何在iOS 7下對UIButton執行漣漪效應?

我最初的反應是有幾個圓圈UIImageViewCGAffineTransformMakeScale到一個稍大的大小,同時降低他們的alpha在同一時間。但我覺得這不是最好的選擇,因爲它看起來像創造圖像只是因爲它看起來很傻,它可能會造成一些不必要的竊聽。

完成此操作的最佳方法是什麼?如果你不使用私人API,獎勵積分。

+0

http://stackoverflow.com/questions/5973530/iphone-having-a-ripple-effect-on-a-uiimageview –

+0

@PratyushaTerli這是一個私人API,沒有獎勵積分給你。 :P –

+0

@Doug無論現有的解決方案是什麼,請不要問相同的問題兩次 –

回答

5

您可以在按鈕後面添加幾個透明的UIView。 (僞代碼):

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的平面設計,但我想這取決於你的應用程序的風格。