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.
-
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)
-
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
-
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
-
Add text cho CATextLayer:
textLayer.string = "Little Bites of Cocoa"
-
Masking view với CATextLayer:
imageView.layer.mask = textLayer
-
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