CALayer解析3:CATextLayer
2017-08-29 本文已影响157人
狂奔的胖蜗牛
1.简介
CATextLayer提供了一个简单快速的文本渲染,与UILabel不同,不能设置Font,只能使用CTFontRef或CGFontRef。
2.使用
override func viewDidLoad() {
super.viewDidLoad()
//创建出CATextLayer,并且设置边界
let textLayer = CATextLayer()
textLayer.frame = self.view.bounds
//创建出文本内容
var str = ""
for _ in 1...20 {
str += "这是一串非常长的文字!而且还会重复出现!不停的,不停的,不停的。。。。"
}
textLayer.string = str
//将文本赋值给CATextLayer
let fontName: CFString = "Noteworthy-Light" as CFString
textLayer.font = fontName
//设置文字颜色
textLayer.foregroundColor = UIColor.darkGray.cgColor
//设置内容是否适应边界
textLayer.isWrapped = true
//内容对齐方式
textLayer.alignmentMode = kCAAlignmentLeft
//结尾方式
textLayer.truncationMode = kCATruncationEnd
//缩放
textLayer.contentsScale = UIScreen.main.scale
view.layer.addSublayer(textLayer)
}
结果:
屏幕快照 2017-08-29 下午4.26.44.png3.属性
属性 | 作用 |
---|---|
string | 要绘制的内容,可以是NSString,也可以是NSAttributedString |
font | 字体,只能在使用了string时设置 |
fontSize | 字体大小,默认36,使用条件同font |
foregroundColor | 要绘制的字体颜色,使用条件同font |
isWrapped | 是否自适应layer的边界,不适应的话,只会显示一行 |
truncationMode | 省略号的位置 |
alignmentMode | 文本对齐方式 |
allowsFontSubpixelQuantization | 默认为NO,设置文字是否像素化 |