每次登錄QQ的時候都覺得登錄框的動畫挺小清新的,今天想著自己實現(xiàn)一下這個小功能 ,首先效果如圖
效果圖
功能實現(xiàn)不難,就是剛開始的時候思路走了些彎路,剛開始我是打算先把動畫的藍色圓環(huán)先添加在界面上,然后通過改變該圓環(huán)的layer的strokestart和strokeend的數(shù)值來達到目標效果的,我首先設置了兩個float類型的start和end屬性,其中start默認0.25,end默認0.75,每秒鐘start和end默認增加0.1,但是當end的值大于1后,為了使strokeend有效,我設置當end大于1時。end-1,然而并沒用,甚至干脆動畫都沒了。然后我想過當end大于1后,交換start和end的值,發(fā)現(xiàn)圓環(huán)會突然變成反向的,所以我就放棄了使用strokestart和strokeend達到效果的方法。
然后我就用了這個方法,達到了最終的效果。
主要代碼
if判斷語句是為了看看在添加新的layer之前有沒有舊的藍色圓環(huán),有的話就刪除,然后添加,如果不加這個判斷的話,就會導致圓環(huán)逐漸形成整環(huán)。另外使用insertSublayer是為了讓藍色圓環(huán)加在最底層從而達到滑過下面的綠色圓圈是不要遮蓋住它。