// 1、CATextLayer比Label渲染的更快。
// 2、CATextLayer硬件加速了。
// 3、这个例子将Layer层创建成CATextLayer。重写了Label的是三个属性。
// LayerLabel.swift
// GATransitionAnimation
//
// Created by houjianan on 2017/3/19.
// Copyright © 2017年 houjianan. All rights reserved.
// CATextLayer也要比UILabel渲染得快得多
import UIKit
class LayerLabel: UILabel {
// API说明:The class used to create the layer for instances of this class.
override class var layerClass: AnyClass {
return CATextLayer.classForCoder()
}
// 获得本身转变成CATextLayer的对象
var textLayer: CATextLayer {
return self.layer as! CATextLayer
}
// 设置textLayer
func setUp() {
textLayer.alignmentMode = kCAAlignmentJustified
textLayer.isWrapped = true
self.layer.display()
}
// 初始化方法
override init(frame: CGRect) {
super.init(frame: frame)
setUp()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
// xib初始化
override func awakeFromNib() {
setUp()
}
// 重写相关属性text
override var text: String? {
didSet {
// 001
super.text = text
// 002
textLayer.string = text
}
}
// 重写相关属性textColor
override var textColor: UIColor? {
didSet {
super.textColor = textColor
textLayer.foregroundColor = UIColor.blue.cgColor
}
}
// 重写相关属性font
override var font: UIFont? {
didSet {
super.font = font
let fontRef = CGFont.init(font!.fontName as CFString)
textLayer.font = fontRef
textLayer.fontSize = font?.pointSize ?? 12
}
}
}
iOS-swift - CATextLayer 绘制文字
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 在进行iOS开发时,和之前使用OC一样,默认使用storyboard,所以无需在AppDelegate中进行任何操...
- 原作者:Mybridge 文章来源:Medium 翻译:luowanglin 仅供个人学习,不用于任何商业目的,版...
- 其中NSOperatingSystemVersion方法中,后面的三个参数合起来代表了系统版本。例如上面的例子ma...
- 在OC和Swift混合开发中,我们要做的第一件事就是建立桥接头文件,只有创建了桥接头文件,我们才能继续接下来的开发...
- 大家可以到 github 下载代码最近有业务要用到蓝牙通讯功能,所以研究了一下蓝牙的开发,到github上搜索了一...