iOS-swift - CATextLayer 繪制文字

// 1染乌、CATextLayer比Label渲染的更快。
// 2、CATextLayer硬件加速了。
// 3、這個(gè)例子將Layer層創(chuàng)建成CATextLayer便监。重寫了Label的是三個(gè)屬性。
//  LayerLabel.swift
//  GATransitionAnimation
//
//  Created by houjianan on 2017/3/19.
//  Copyright ? 2017年 houjianan. All rights reserved.

//  CATextLayer也要比UILabel渲染得快得多

import UIKit

class LayerLabel: UILabel {

//    API說(shuō)明:The class used to create the layer for instances of this class.
    override class var layerClass: AnyClass {
        return CATextLayer.classForCoder()
    }
//    獲得本身轉(zhuǎn)變成CATextLayer的對(duì)象
    var textLayer: CATextLayer {
        return self.layer as! CATextLayer
    }
//    設(shè)置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()
    }
//    重寫相關(guān)屬性text
    override var text: String? {
        didSet {
            // 001
            super.text = text
            // 002
            textLayer.string = text
        }
    }
//    重寫相關(guān)屬性textColor
    override var textColor: UIColor? {
        didSet {
            super.textColor = textColor
            textLayer.foregroundColor = UIColor.blue.cgColor
        }
    }
//    重寫相關(guān)屬性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
        }
    }
    
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市坛吁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌铐尚,老刑警劉巖拨脉,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異宣增,居然都是意外死亡玫膀,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門爹脾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)帖旨,“玉大人,你說(shuō)我怎么就攤上這事誉简〉锞停” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵闷串,是天一觀的道長(zhǎng)瓮钥。 經(jīng)常有香客問(wèn)我,道長(zhǎng)烹吵,這世上最難降的妖魔是什么碉熄? 我笑而不...
    開(kāi)封第一講書人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮肋拔,結(jié)果婚禮上锈津,老公的妹妹穿的比我還像新娘。我一直安慰自己凉蜂,他們只是感情好琼梆,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著窿吩,像睡著了一般茎杂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纫雁,一...
    開(kāi)封第一講書人閱讀 49,792評(píng)論 1 290
  • 那天煌往,我揣著相機(jī)與錄音,去河邊找鬼轧邪。 笑死刽脖,一個(gè)胖子當(dāng)著我的面吹牛羞海,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播曲管,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼却邓,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了翘地?” 一聲冷哼從身側(cè)響起申尤,我...
    開(kāi)封第一講書人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎衙耕,沒(méi)想到半個(gè)月后昧穿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡橙喘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年时鸵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厅瞎。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡饰潜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出和簸,到底是詐尸還是另有隱情彭雾,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布锁保,位于F島的核電站薯酝,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏爽柒。R本人自食惡果不足惜吴菠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望浩村。 院中可真熱鬧做葵,春花似錦、人聲如沸心墅。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)怎燥。三九已至瘫筐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間刺覆,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工史煎, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谦屑,地道東北人驳糯。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像氢橙,于是被迫代替她去往敵國(guó)和親酝枢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容