一般情况
要设置 CATextLayer 的文本颜色,请使用
myTextLayer.foregroundColor = UIColor.cyan.cgColor
如在
let myTextLayer = CATextLayer()
myTextLayer.string = "My text"
myTextLayer.backgroundColor = UIColor.blue.cgColor
myTextLayer.foregroundColor = UIColor.cyan.cgColor
myTextLayer.frame = myView.bounds
myView.layer.addSublayer(myTextLayer)
如果不设置颜色,则背景和前景默认为白色。
使用属性字符串
根据文件,
该foregroundColor
属性仅在string
属性不是NSAttributedString
.
这就是为什么您无法更改颜色的原因。在这种情况下,您需要将颜色添加到属性字符串。
// Attributed string
let myAttributes = [
NSAttributedStringKey.font: UIFont(name: "Chalkduster", size: 30.0)! , // font
NSAttributedStringKey.foregroundColor: UIColor.cyan // text color
]
let myAttributedString = NSAttributedString(string: "My text", attributes: myAttributes )
// Text layer
let myTextLayer = CATextLayer()
myTextLayer.string = myAttributedString
myTextLayer.backgroundColor = UIColor.blue.cgColor
//myTextLayer.foregroundColor = UIColor.cyan.cgColor // no effect
myTextLayer.frame = myView.bounds
myView.layer.addSublayer(myTextLayer)
这使
答案更新为 Swift 4