利用iOS動(dòng)畫來模擬音量振動(dòng)條的實(shí)現(xiàn)
iOS動(dòng)畫來模擬音量振動(dòng)條,即利用CAReplicatorLayer實(shí)現(xiàn),以下將詳細(xì)的介紹CAReplicatorLayer和實(shí)現(xiàn)方法。
音量振動(dòng)條
效果圖:
如何實(shí)現(xiàn)?
創(chuàng)建3個(gè)layer,按順序播放y軸縮放動(dòng)畫
利用CAReplicatorLayer實(shí)現(xiàn)
1、什么是CAReplicatorLayer?
一種可以復(fù)制自己子層的layer,并且復(fù)制出來的layer和原生子層有同樣的屬性,位置,形變,動(dòng)畫。
2、CAReplicatorLayer屬性
- instanceCount: 子層總數(shù)(包括原生子層)
- instanceDelay: 復(fù)制子層動(dòng)畫延遲時(shí)長
- instanceTransform: 復(fù)制子層形變(不包括原生子層),每個(gè)復(fù)制子層都是相對(duì)上一個(gè)。
- instanceColor: 子層顏色,會(huì)和原生子層背景色沖突,因此二者選其一設(shè)置。
- instanceRedOffset、instanceGreenOffset、instanceBlueOffset、instanceAlphaOffset: 顏色通道偏移量,每個(gè)復(fù)制子層都是相對(duì)上一個(gè)的偏移量。
- 如果利用CAReplicatorLayer實(shí)現(xiàn)
1.首先創(chuàng)建復(fù)制layer,音樂振動(dòng)條layer添加到復(fù)制layer上,然后復(fù)制子層就好了。
CAReplicatorLayer *layer = [CAReplicatorLayer layer]; layer.frame = CGRectMake(50, 50, 200, 200); layer.backgroundColor = [UIColor lightGrayColor].CGColor; [self.view.layer addSublayer:layer];
2.先創(chuàng)建一個(gè)音量振動(dòng)條,并且設(shè)置好動(dòng)畫,動(dòng)畫是繞著底部縮放,設(shè)置錨點(diǎn)
CALayer *bar = [CALayer layer]; bar.backgroundColor = [UIColor redColor].CGColor; bar.bounds = CGRectMake(0, 0, 30, 100); bar.position = CGPointMake(15, 200); bar.anchorPoint = CGPointMake(0.5, 1); [layer addSublayer:bar]; CABasicAnimation *anim = [CABasicAnimation animation]; anim.keyPath = @"transform.scale.y"; anim.toValue = @(0.1); anim.autoreverses = YES; anim.repeatCount = MAXFLOAT; [bar addAnimation:anim forKey:nil];
3.復(fù)制子層
// 設(shè)置4個(gè)子層,3個(gè)復(fù)制層 layer.instanceCount = 4; // 設(shè)置復(fù)制子層的相對(duì)位置,每個(gè)x軸相差40 layer.instanceTransform = CATransform3DMakeTranslation(40, 0, 0); // 設(shè)置復(fù)制子層的延遲動(dòng)畫時(shí)長 layer.instanceDelay = 0.3;
通過以上對(duì)CAReplicatorLayer的介紹以及利用CAReplicatorLayer來實(shí)現(xiàn)模擬音量振動(dòng)條的實(shí)例的演示,希望對(duì)大家有所幫助。
相關(guān)文章
Flutter開發(fā)Widgets?之?PageView使用示例
這篇文章主要為大家介紹了Flutter開發(fā)Widgets?之?PageView使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10Objective-C基礎(chǔ) 自定義對(duì)象歸檔詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了Objective-C基礎(chǔ) 自定義對(duì)象歸檔詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-04-04iOS系統(tǒng)緩存方面開發(fā)的相關(guān)基礎(chǔ)
這篇文章主要介紹了iOS系統(tǒng)緩存方面開發(fā)的相關(guān)基礎(chǔ),示例代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2015-10-10詳解iOS開發(fā)中app的歸檔以及偏好設(shè)置的存儲(chǔ)方式
這篇文章主要介紹了iOS開發(fā)中app的歸檔以及偏好設(shè)置的存儲(chǔ)方式,示例代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2015-12-12iOS中多網(wǎng)絡(luò)請(qǐng)求的線程安全詳解
這篇文章主要給大家介紹了關(guān)于iOS中多網(wǎng)絡(luò)請(qǐng)求的線程安全的相關(guān)資料文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10iOS開發(fā)之UIPickerView實(shí)現(xiàn)城市選擇器的步驟詳解
這篇文章給大家介紹iOS利用控件UIPickerView實(shí)現(xiàn)城市選擇器的效果,選擇城市這一功能相信在大家日常開發(fā)的時(shí)候經(jīng)常遇見,下面就來看看詳細(xì)的實(shí)現(xiàn)過程,有需要的可以參考借鑒。2016-09-09iOS實(shí)現(xiàn)秒殺活動(dòng)倒計(jì)時(shí)
這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)秒殺活動(dòng)倒計(jì)時(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12iOS實(shí)現(xiàn)列表與網(wǎng)格兩種視圖的相互切換
相信大家應(yīng)該也都發(fā)現(xiàn)了,在現(xiàn)在很多的電商app中,都會(huì)有列表視圖和網(wǎng)格兩種視圖的相互切換。例如京東和淘寶。這樣更利于提高用戶的體驗(yàn)度,所以這篇文章小編就是大家分享下利用iOS實(shí)現(xiàn)列表與網(wǎng)格兩種視圖相互切換的方法,文中介紹的很詳細(xì),感興趣的下面來一起看看吧。2016-10-10