Swift 4.2 CAReplicatorLayer的使用

CAReplicatorLayer可以按照指定的次数复制自己的子层,并按照指定的方式变换位置、大小、颜色、透明度等。以及动画实现。

我们先看一下CAReplicatorLayer的基本属性,找到CAReplicatorLayer的定义,是继承CALayer,所有具有CALayer的所有特性,那么我们看看他独有的属性。

  • instanceCount 这个是拷贝子层的数量,默认是1,支持动画。

  • preservesDepth 默认是NO,设置为YES,图层将保持于CATransformLayer类似的性质和限制。

  • instanceDelay 延时复制,在一定的时间内复制延时,常用来做动画。默认是0。

  • instanceTransform 相对于上一个位置的变换,当锚点时以CAReplicatorlayer中心点。

  • instanceColor 子层的颜色,默认为白色。

  • instanceRedOffset 相对于上一个的红色偏移量,取值0-1,默认为0。

  • instanceGreenOffset 相对于上一个的绿色偏移量,取值0-1,默认为0。

  • instanceBlueOffset 相对于上一个的蓝色偏移量,取值0-1,默认为0。

  • instanceAlphaOffset 相对于上一个的透明度偏移量,取值0-1,默认为0。

这个是CAReplicatorLayer自己独有的特性,现在我们来实现一个简单的评分控件

    func createRelayer() -> Void {
        let reLayer = CAReplicatorLayer();
        layer.addSublayer(reLayer);
        reLayer.frame = bounds;
        
        let subLayer = CALayer();
        subLayer.frame = CGRect.init(x: 40, y:  40, width: 16, height: 16);
        reLayer.addSublayer(subLayer);
        subLayer.contents = UIImage(named: "wux.png")?.cgImage;
        
        reLayer.instanceCount = 5;
        let cst = CATransform3DMakeTranslation(20, 0, 0)
        reLayer.instanceTransform = cst;
        
        
    }

我们直接创建一个CAReplicatorLayer,然后给他添加一个子Layer,并且给子Layer赋值一个五角星图片,然后按照要求生成5个。这样就出现了一个简单的评分控件。运行效果如下图:

评分控件

到这里一个简单的控件已经写好了。奋斗的路上总不会缺少人---努力的人。⛽️⛽️⛽️ 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值