iOS-CAGradientLayer实现指纹扫描动画

目标

实现一条渐变白色横线上下不断扫描的动画

实现过程

self.view.backgroundColor = .black
        
        //part1:设置指纹扫描背景图片
        let image = UIImage(named: "unLock")
        let imageView = UIImageView(image: image)
        imageView.contentMode = .scaleAspectFit
        imageView.frame = self.view.bounds
        imageView.center = self.view.center
        self.view.addSubview(imageView)
        
        //part2:设置Layer图层属性
        let gradientLayer = CAGradientLayer()
        gradientLayer.frame = CGRect(x: 85, y: 400, width: 200, height: 200)
        gradientLayer.startPoint = CGPoint(x: 0, y: 0)
        gradientLayer.endPoint = CGPoint(x: 0, y: 1) //startPoint与endPoint决定光波方向,从上到下
        gradientLayer.colors = [UIColor.clear.cgColor, UIColor.white.cgColor, UIColor.clear.cgColor] //渐变颜色数组,第一个元素为UIView的底色,第二个颜色为渐变颜色,第三个颜色为原本覆盖在UIView的动画颜色。用法:主要设置第二个元素为渐变颜色,其他设置UIView底色
        gradientLayer.locations = [0.0, 0.1, 0.2] //渐变颜色位置数组
        imageView.layer.addSublayer(gradientLayer)
        
        //part3:设置CABasicAnimation
        let gradientAnimation = CABasicAnimation()
        gradientAnimation.keyPath = "locations"
        gradientAnimation.fromValue = [0.0, 0.1, 0.2]
        gradientAnimation.toValue = [0.8, 0.9, 1.0]
        gradientAnimation.duration = 3.0
        gradientAnimation.repeatCount = 10
        gradientLayer.add(gradientAnimation, forKey: nil)

效果图

指纹扫描效果图.gif

如果觉得我的文章对您有用,请点击喜欢。您的支持将鼓励我继续创作!大家有什么不懂或我哪里写错了都可以评论留言,我一定会回复的~

你可能感兴趣的:(iOS-CAGradientLayer实现指纹扫描动画)