本發(fā)明屬于移動應用開發(fā)領域,特別涉及一種基于iOS系統(tǒng)的音樂頻譜跳動動畫的實現(xiàn)方法。
背景技術:
隨著移動互聯(lián)網(wǎng)的快速發(fā)展,移動應用更注重人性化體驗,而在移動應用的開發(fā)過程中動畫效果越來越多的被使用,一款有著人性化體驗動畫的App自然能留住更多用戶,在App的某個圖文頁面上,通過動畫展示來描述了一個產(chǎn)品或場景比文字描述更加讓App顯得有生命力。因此,基于iOS系統(tǒng)開發(fā)一款應用程序時,會經(jīng)常使用到動畫效果,在iOS系統(tǒng)進行軟件開發(fā),若需要實現(xiàn)動畫效果,可通過Core Animation庫提供的各類方法屬性制作出各種動畫效果,這些動畫效果需要添加到一個CALayer對象上面并顯示,才能展示出所開發(fā)的動畫,雖然Core Animation等庫提供給開發(fā)者很多的基礎動畫,但是它不能夠直接提供一些我們想要的復雜動畫,所以需要我們利用iOS提供的這些基礎動畫庫去配合開發(fā)實現(xiàn)自定義的動畫。
當需要開發(fā)一款類似于音頻頻譜跳動的動畫時,比如應用正在播放音頻時,為了有一個標示正在播放中的狀態(tài),一個模仿音頻頻譜持續(xù)跳動的動畫自然會讓用戶知曉當前音頻正在播放中,這可代替了生硬的文字描述,給用戶提供更優(yōu)越的體驗。雖然可以通過添加多個CALayer來實現(xiàn),但是該方法會使系統(tǒng)代碼變得很復雜,而且也無法充分利用iOS操作系統(tǒng)提供的既有技術,不能提供良好的動畫性能。
技術實現(xiàn)要素:
【要解決的技術問題】
本發(fā)明的目的是提供一種基于iOS系統(tǒng)的音樂頻譜跳動動畫的實現(xiàn)方法,以解決以上技術問題之一。
【技術方案】
本發(fā)明是通過以下技術方案實現(xiàn)的。
本發(fā)明涉及一種基于iOS系統(tǒng)的音樂頻譜跳動動畫的實現(xiàn)方法,該方法包括以下步驟:
A、創(chuàng)建至少一個CAReplicatorLayer對象,設置CAReplicatorLayer對象的大小位置和背景顏色,所述CAReplicatorLayer對象作為復制圖層的容器;
B、設置CAReplicatorLayer對象決定如何進行復制圖層的屬性;
C、創(chuàng)建一個CALayer對象作為基礎圖層,設置其相對于容器的屬性,所述屬性至少包括位置、大小、顏色參數(shù);
D、創(chuàng)建一個能夠?qū)崿F(xiàn)上下移動動畫效果的Core Animation動畫對象;
E、將CALayer對象添加到CAReplicatorLayer容器,根據(jù)步驟A配置的復制參數(shù)進行復制,將步驟D中實現(xiàn)的動畫效果進行顯示。
作為一種優(yōu)選的實施方式,所述創(chuàng)建的CAReplicatorLayer對象位置大小通過配置frame、bounds、position屬性設置,所述創(chuàng)建的CAReplicatorLayer對象的背景顏色通過backgroundColor屬性設置。
作為另一種優(yōu)選的實施方式,所述步驟B包括以下步驟:
通過instanceCount設置復制多少個圖層;
通過instanceTransform屬性設置復制的圖層副本之間的距離和旋轉(zhuǎn);
通過instanceDelay屬性設置圖層副本間的延遲;
通過masksToBounds設置裁剪超出圖層容器的子圖層。
作為另一種優(yōu)選的實施方式,所述創(chuàng)建的CALayer對象相對于CAReplicatorLayer容器的位置和大小通過frame、bounds、position屬性設置,所述創(chuàng)建的CALayer對象的顏色通過backgroundColor屬性設置,所述創(chuàng)建的CALayer對象的圓角半徑通過cornerRadius屬性設置。
【有益效果】
本發(fā)明提出的技術方案具有以下有益效果:
本發(fā)明基于iOS系統(tǒng)中的CAReplicatorLayer來實現(xiàn)模擬音頻頻譜跳動動畫,通過充分使用系統(tǒng)原生提供的技術,簡化了實現(xiàn)此類動畫的流程,提高了代碼后期維護的靈活性,同時也增強了動畫性能穩(wěn)定性,能夠大大提升用戶體驗。
附圖說明
圖1為本發(fā)明的實施例一提供的基于iOS系統(tǒng)的音樂頻譜跳動動畫的實現(xiàn)方法的流程圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將對本發(fā)明的具體實施方式進行清楚、完整的描述。
實施例一
圖1為本發(fā)明實施例一提供的基于iOS系統(tǒng)的音樂頻譜跳動動畫的實現(xiàn)方法的流程圖。如圖1所示,該步驟包括步驟S1至步驟S5,下面分別對各個步驟進行詳細介紹。
步驟S1:創(chuàng)建一個CAReplicatorLayer對象作為圖層容器,設置CAReplicatorLayer對象的大小位置和背景顏色。
本實施例中,CAReplicatorLayer對象作為復制圖層的容器。具體地,創(chuàng)建的CAReplicatorLayer對象位置大小通過配置frame、bounds、position屬性設置,創(chuàng)建的CAReplicatorLayer對象的背景顏色通過backgroundColor屬性設置。
步驟S2:設置CAReplicatorLayer對象決定如何進行復制圖層的屬性。
具體地,本實施例中,設置CAReplicatorLayer對象決定如何進行復制圖層的屬性包括:
通過instanceCount設置復制多少個圖層;
通過instanceTransform屬性設置復制的圖層副本之間的距離和旋轉(zhuǎn);
通過instanceDelay屬性設置圖層副本間的延遲;
通過masksToBounds設置裁剪超出圖層容器的子圖層。
步驟S3:創(chuàng)建一個CALayer對象作為基礎圖層,設置其相對于容器的屬性。
其中,屬性包括位置、大小、顏色參數(shù),具體地,本實施例中,創(chuàng)建的CALayer對象相對于CAReplicatorLayer容器的位置和大小通過frame、bounds、position屬性設置,創(chuàng)建的CALayer對象的顏色通過backgroundColor屬性設置,創(chuàng)建的CALayer對象的圓角半徑通過cornerRadius屬性設置。
步驟S4:創(chuàng)建一個能夠?qū)崿F(xiàn)上下移動動畫效果的Core Animation動畫對象。
在本實施例中可以通過創(chuàng)建CABasicAnimation對象,設置KeyPath為position.y,通過改變keyPath的值實現(xiàn)上下移動動畫;添加到CALayer對象上后即可使CALayer對象具有上下移動的動畫效果,CAReplicatorLayer容器復制時會把動畫也進行復制。
步驟S5:將CALayer對象添加到CAReplicatorLayer容器,實現(xiàn)動畫效果的顯示。
具體地,將CALayer對象添加到CAReplicatorLayer容器,根據(jù)步驟S1配置的復制參數(shù)進行復制,將步驟S4中實現(xiàn)的動畫效果進行顯示。通過屏幕顯示后,就能實現(xiàn)模擬音頻頻譜跳動動畫效果。
需要說明,在實施例一的基礎上,在具體的開發(fā)過程中,也可以根據(jù)開發(fā)者不同的需求創(chuàng)建多個CAReplicatorLayer容器、多個CALayer對象,添加多個動畫效果,以實現(xiàn)更為復雜的動畫效果。
從以上實施例可以看出,本發(fā)明實施例首先創(chuàng)建一個CAReplicatorLayer對象作為Layer的容器,然后創(chuàng)建了一個CALayer對象并通過Core Animation添加自定義的不斷上下移動的動畫效果,由于添加到容器上的子Layer可以復制若干份,所以將創(chuàng)建的Layer添加到該容器中后,設定子Layer復制份數(shù)、與復制Layer副本之間的距離、透明度、顏色、旋轉(zhuǎn)、位置等狀態(tài)屬性后,即可實現(xiàn)一個模仿音頻頻譜跳動的動畫效果,并能保證動畫效果的性能較好,內(nèi)存使用很低。
本發(fā)明實施例基于iOS系統(tǒng)中的CAReplicatorLayer來實現(xiàn)模擬音頻頻譜跳動動畫,通過充分使用系統(tǒng)原生提供的技術,簡化了實現(xiàn)此類動畫的流程,提高了代碼后期維護的靈活性,同時也增強了動畫性能穩(wěn)定性,能夠大大提升用戶體驗。
需要說明,上述描述的實施例是本發(fā)明的一部分實施例,而不是全部實施例,也不是對本發(fā)明的限制?;诒景l(fā)明的實施例,本領域普通技術人員在不付出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明的保護范圍。