iOS-Swift设置圆角渐变色边框

截屏2022-03-21 下午5.48.28.png


        let myView = UIView()
        myView.bounds = CGRect(x: 0, y: 0, width: 300, height: 100)
        myView.addGradientLayerWithCorner(cornerRadius: 20, lineWidth: 10, colors: [UIColor.blue.cgColor, UIColor.green.cgColor])

extension UIView {
    
    func addGradientLayerWithCorner(cornerRadius:CGFloat, lineWidth:CGFloat, colors: [CGColor]) {
        let gradientLayer = CAGradientLayer()
        gradientLayer.frame = self.bounds
        gradientLayer.colors = [UIColor.blue.cgColor,UIColor.green.cgColor]
        gradientLayer.cornerRadius = cornerRadius
        
        let maskLayer = CAShapeLayer()
        maskLayer.lineWidth = lineWidth
        maskLayer.path = UIBezierPath(roundedRect: CGRect(x: lineWidth / 2, y: lineWidth / 2, width: bounds.width - lineWidth, height: bounds.height - lineWidth), cornerRadius: cornerRadius).cgPath
        maskLayer.fillColor = UIColor.clear.cgColor
        maskLayer.strokeColor = UIColor.black.cgColor
        
        gradientLayer.mask = maskLayer
        self.layer.addSublayer(gradientLayer)
    }
}

这么个东西,网上一搜实现的也是各种问题。只能自己封装一下。

posted @   rome753  阅读(628)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示