美文网首页
iOS-swift - CATextLayer

iOS-swift - CATextLayer

作者: GA_ | 来源:发表于2017-03-19 23:24 被阅读346次
// 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[QuartzCore框架](CATextLayer)(6

    一、CATextLayer简介 CATextLayer可以通过字符串进行文字的绘制。 二、CATextLayer....

  • QuartzCore - CATextLayer

    CATextLayer 垂直居中显示,自定义 CATextLayer ,重写 draw(in ctx:) 方法

  • 2018-01-30

    CATextLayer 渲染速度 快鱼 UILabel所以以后争取用 CATextLayer 代替UILabel的...

  • CoreAnimation----CATextLayer

    CATextLayer 1. CATextLayer UILabel的精髓 在一个图层里面显示文字,可以借助图层代...

  • CATextLayer

    这两个CTFontRef,CGFontRef没用过,参考其他文章使用吧 Demo部分代码 接上一篇CAShapeL...

  • CATextLayer

    在界面上添加文本有两种;一种是: UILabel;第二种是:CATextLayer;最近在改到一个菜单的demo ...

  • CATextLayer

    在界面上添加文本有两种;一种是: UILabel;第二种是:CATextLayer;最近在改到一个菜单的demo ...

  • CATextLayer

    CATextLayer也要比UILabel渲染得快得多。 很少有人知道在iOS 6及之前的版本,UILabel其实...

  • CoreAnimation之CATextLayer

    CATextLayer是专用的文本显示图层,有和UILaber一样的显示功能,只是CATextLayer的文本渲染...

网友评论

      本文标题:iOS-swift - CATextLayer

      本文链接:https://www.haomeiwen.com/subject/fcavnttx.html