利用iOS動畫來類比音量震動條的實現_IOS

來源:互聯網
上載者:User

iOS動畫來類比音量震動條,即利用CAReplicatorLayer實現,以下將詳細的介紹CAReplicatorLayer和實現方法。

音量震動條

效果圖:

如何??

建立3個layer,按順序播放y軸縮放動畫

利用CAReplicatorLayer實現

1、什麼是CAReplicatorLayer?

一種可以複製自己子層的layer,並且複製出來的layer和原生子層有同樣的屬性,位置,形變,動畫。

2、CAReplicatorLayer屬性

  • instanceCount: 子層總數(包括原生子層)
  • instanceDelay: 複製子層動畫延遲時間長度
  • instanceTransform: 複製子層形變(不包括原生子層),每個複製子層都是相對上一個。
  • instanceColor: 子層顏色,會和原生子層背景色衝突,因此二者選其一設定。
  • instanceRedOffset、instanceGreenOffset、instanceBlueOffset、instanceAlphaOffset: 色彩通道位移量,每個複製子層都是相對上一個的位移量。
  • 如果利用CAReplicatorLayer實現

1.首先建立複製layer,音樂震動條layer添加到複製layer上,然後複製子層就好了。

CAReplicatorLayer *layer = [CAReplicatorLayer layer]; layer.frame = CGRectMake(50, 50, 200, 200); layer.backgroundColor = [UIColor lightGrayColor].CGColor; [self.view.layer addSublayer:layer];

2.先建立一個音量震動條,並且設定好動畫,動畫是繞著底部縮放,設定錨點

 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.複製子層

// 設定4個子層,3個複製層 layer.instanceCount = 4; // 設定複製子層的相對位置,每個x軸相差40 layer.instanceTransform = CATransform3DMakeTranslation(40, 0, 0); // 設定複製子層的延遲動畫時間長度 layer.instanceDelay = 0.3;

通過以上對CAReplicatorLayer的介紹以及利用CAReplicatorLayer來實現類比音量震動條的執行個體的示範,希望對大家有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.