12/08/2018, 15:13

CATextLayer - Masking views with text

CATextLayer là một layer cung cấp layout của text đơn giản và rendering các text thuần hay các thuộc tính của strings một cách nhanh chóng. Khác với UILabel, chúng ta không thể gán một UIFont cho CATextLayer, mà chỉ có thể là một CTFontRef hoặc CGFontRef. Tạo một UIImageView: let ...

  • CATextLayer là một layer cung cấp layout của text đơn giản và rendering các text thuần hay các thuộc tính của strings một cách nhanh chóng.
  • Khác với UILabel, chúng ta không thể gán một UIFont cho CATextLayer, mà chỉ có thể là một CTFontRef hoặc CGFontRef.

  1. Tạo một UIImageView:

     let imageView = UIImageView(image: UIImage(named: "bgr"))
     imageView.frame = CGRect(x: 0, y: 100, awidth: UIScreen.main.bounds.awidth, height: 200)
     imageView.contentMode = .scaleAspectFill
     self.view.addSubview(imageView)
    
  2. Tạo một CATextLayer: CATextLayer này có cùng size với UIImageView ở trên.

     let textLayer = CATextLayer()
     textLayer.frame = imageView.bounds
    

    Set các thuộc tính Core Graphics:

     textLayer.rasterizationScale = UIScreen.main.scale
     textLayer.contentsScale = UIScreen.main.scale
    
  3. Set các thuộc tính về font, aligment, truncation...

    textLayer.alignmentMode = kCAAlignmentCenter
    textLayer.fontSize = 42.0
    textLayer.font = UIFont(name: "TrebuchetMS-Bold", size: 42.0)
    textLayer.isWrapped = true
    textLayer.truncationMode = kCATruncationEnd
    
  4. Add text cho CATextLayer:

     textLayer.string = "Little Bites of Cocoa"
    
  5. Masking view với CATextLayer:

     imageView.layer.mask = textLayer
    
  6. Run.

CATextLayer là một subclass hiệu quả giúp ta có thể custom lại các đoạn text, các strings một cách đơn giản, nhanh chóng và đẹp mắt. Hy vọng bài viết có ích với các bạn. Thanks

0