广

IOS开发

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    利用iOS动画来模拟音量振动条的实现

    2018-04-03 22:30:35 次阅读 稿源:互联网
    广告

    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来实现模拟音量振动条的实例的演示,希望对大家有所帮助。

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告