用渐变颜色绘制一个字符串

时间:2012-10-23 13:05:49

标签: macos core-graphics gradient nsattributedstring

有没有办法在渐变颜色的NSView中绘制字符串?渐变不是背景,而是字母本身。也许是一些面具,或者左右?

(实际上,它不是文字,而是图标字体)。

1 个答案:

答案 0 :(得分:1)

override func draw(_ rect: CGRect) {

    //Add gradient layer
    let gl = CAGradientLayer()
    gl.frame = rect
    gl.endPoint = CGPoint(x: 0, y: 0)
    gl.colors = [UIColor.red.cgColor, UIColor.blue.cgColor]
    layer.addSublayer(gl)

    //create a text layer mask
    let tl = CATextLayer()
    tl.frame = rect
    tl.string = "My String in Gradient"

    //Add mask to gradient layer
    gl.mask = tl

}

The picture shows a text with gradient

希望这有帮助!