iOS编程——Swift实现多段CAShapeLayer动画

这篇博客分享了如何使用Swift创建一个效果为点击屏幕后显示一段随机颜色的圆环旋转的视图。实现过程中关键在于利用CAShapeLayer,通过设置strokeStart和strokeEnd的keyPath来实现动画及清除旧的圆环段。
摘要由CSDN通过智能技术生成

今天看了一个例子,按照自己的思路用swift写了一个,跟大家分享下。执行完的结果如下(刚开始不知道怎么传动态图 - -!):



这个实现的效果是  每点击一下屏幕,就会出现一段随机颜色的圆环接着之前的圆环旋转


实现代码:


1.新建swift文件,继承于UIView,内容如下:

import UIKit

class CustomProgessView: UIView {
    
}

2.声明:声明所有的全局变量

    //圆环线宽
    let lineWidth = 50.0
    //整个圆环完成所需时间
    let duration:CGFloat = 5.0
    
    //圆环是否全部完成
    var circleComplete = false
    
    //背景灰色圆环
    var backgroundLayer: CAShapeLayer!
    
    //所有圆环段的集合
    var layerArray: [CAShapeLayer]!


3.初始化,添加灰色背景圆环:

override init(frame: CGRect) {
        super.init(frame: frame)
        initParam()
        
    }

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        initParam()
    }
    
    func initParam() {
        layerArray = Array()
        
        addBackgroundCircle()
    }
    
    func addBackgroundCircle() {
        backgroundLayer = CAShapeLayer()
        backgroundLayer.fillColor = UIColor.clearColor().CGColor
        backgroundLayer.strokeColor = UIColor.grayColor().CGColor
        backgroundLayer.lineWidth = CGFloat(lineWidth)
        layer.addSublayer(backgroundLa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值