// // SPGradientLabel.swift // MoviaBox // // Created by 佳尔 on 2025/4/27. // import UIKit class SPGradientLabel: UILabel { private(set) var gradientLayer: CAGradientLayer = { // 创建渐变层 let gradient = CAGradientLayer() gradient.colors = [ UIColor.red.cgColor, UIColor.blue.cgColor ] gradient.startPoint = CGPoint(x: 0.5, y: 0) gradient.endPoint = CGPoint(x: 0.5, y: 1) gradient.locations = [0, 1] return gradient }() override init(frame: CGRect) { super.init(frame: frame) layer.addSublayer(gradientLayer) } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func layoutSubviews() { super.layoutSubviews() gradientLayer.frame = bounds // 创建一个文字图层 let textLayer = CATextLayer() textLayer.string = attributedText ?? NSAttributedString(string: text ?? "") textLayer.frame = bounds textLayer.alignmentMode = .center textLayer.contentsScale = UIScreen.main.scale gradientLayer.mask = textLayer } }