CATextLayer的简单介绍

来源:互联网 发布:网络上桂枝什么意思 编辑:程序博客网 时间:2024/06/04 18:27
从名字中我们可以看到text说明是跟text编辑有关系的,CATextLayer可以实现半个字的颜色的变化,我们知道富文本类可以实现将某个字的颜色进行变化。CATextLayer实现了更详细的变化。效果如下哦:

实现这个效果主要用了三个layer层的视图,其中CATextLayer是在最上层作为遮罩效果实现的,而其余的两层都是简单的CALayer层,而这两个简单的层则是决定了你所要设置的颜色。
ViewController中的代码如下所示:


import UIKit

class ViewController: UIViewController {

    var colorTextLayer:CATextLayer!

    var toplayer:CALayer!

    var bottomlayer:CALayer!

    override func viewDidLoad() {

        super.viewDidLoad()

        

        self.p_initLayers()

        

        // Do any additional setup after loading the view, typically from a nib.

    }

    func p_initLayers(){

        toplayer = CALayer()

        toplayer.frame =CGRect(x: 50, y:0, width: 95, height:40)

        toplayer.backgroundColor =UIColor.blueColor().CGColor

        

        bottomlayer = CALayer()

        bottomlayer.frame =CGRect(x: 0, y:100, width: self.view.frame.size.width, height:40)

        bottomlayer.backgroundColor =UIColor.magentaColor().CGColor

        bottomlayer.addSublayer(toplayer)

        self.view.layer.addSublayer(bottomlayer)

        

        colorTextLayer =CATextLayer()

        colorTextLayer.string ="我会区域变色哦我会区域变色哦我会区域变色哦域变色哦我会区域变色哦"

//        colorTextLayer.foregroundColor = UIColor.yellowColor().CGColor

        colorTextLayer.frame =bottomlayer.bounds

        colorTextLayer.fontSize =20

        colorTextLayer.alignmentMode =kCAAlignmentCenter

        colorTextLayer.frame =bottomlayer.bounds

        bottomlayer.mask =colorTextLayer

        

        

    }


    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }



}




0 0