前言 CATextLayer适用于IOS或者MAC,比UIlablel 和 NSTextView 能做的事很多,可以这样说UIlablel是通过CATextLayer实现的,身为CALayer的三大子类之一 ,它的功能远比 UIlablel 强大的多的多,其最主要的特点是CATextLayer可以被NSMutableAttributedString直接附值。 下面就简要介绍下CATextLayer 的常规使用,不足之处,还望朋友们下面留言补充,不胜感谢。 苹果官网给出CATextLayer的API解释 ---- 初始化一个CATextLayer CATextLayer *lary =[CATextLayer layer]; lary.string 字.gif CATextLayer与CAShapeLayer(波浪) ?
---- CATextLayer 相比CAShapeLayer,可能CATextLayer的用途更加单一一些,他可以用来展示文字。 所以老司机决定用CATextLayer来实现这个效果。 先来讲一下CATextLayer的基本使用方法吧。 他的几个属性都是见名知意,就是跟label相差无几的属性。 不要太简单,哈哈哈CATextLayer我们就讲到这里。 对咯,就是以一个CATextLayer做红色的CALayer的mask,CATextLayer的字体设置有颜色,背景设置透明色,这样就只能显示出红色的CALayer的文字部分了把他封装在一个UIView UILabel没有的功能,都可以考虑使用CATextLayer。
默认值为YES yellowLayer.doubleSided = NO; CATextLayer * textLayer = [CATextLayer layer];
同样,CATextLayer也要比UILabel渲染得快得多。 而CATextLayer使用了Core text,并且渲染得非常快。 用CATextLayer来实现一个UILabel //create a text layer CATextLayer *textLayer = [CATextLayer layer]; textLayer.frame 富文本 用CATextLayer实现一个富文本标签。 UILabel的替代品 我们想要一个用CATextLayer作为宿主图层的UILabel子类,这样就可以没有冗余的寄宿图啦。 of a regular CALayer for its backing layer return [CATextLayer class]; } - (CATextLayer *)textLayer
五、CATextLayer CATextLayer可以进行文本的绘制,属性方法如下: //渲染的文字字符串 @property(nullable, copy) id string; //
OpenGL ES绘制的层 CAReplicationLayer 用来自动复制sublayer CAScrollLayer 用来管理可滑动的区域 CAShapeLayer 绘制立体的贝塞尔曲线 CATextLayer
同样,CATextLayer也要比UILabel渲染得快得多。 而CATextLayer使用了Core text,并且渲染得非常快。 让我们来尝试用CATextLayer来显示一些文字。清单6.2的代码实现了这一功能。 不过事实上从iOS3.2开始CATextLayer就已经支持属性字符串了。 layer return [CATextLayer class]; } - (CATextLayer *)textLayer { return (CATextLayer *)self.layer; 如果你打算支持iOS 6及以上,基于CATextLayer的标签可能就有有些局限性。
QuartzCore.CAScrollLayer // 滚动 图层 import QuartzCore.CAShapeLayer // 阴影 图层 import QuartzCore.CATextLayer
7.CATextLayer CATextLayer可以通过字符串进行文字的绘制。
import QuartzCore.CAShapeLayer /// 形状Layer import QuartzCore.CATextLayer
NSAttachmentAttributeName 设置文本附件,取值为NSTextAttachment对象,常用于文字图片混排 */ 还有CAReplicatorLayer、CAShapeLayer、CATextLayer
CAScrollLayer: CALayer 子类,简化显示图层的一部分内容,CAScrollLayer 对象的滚动区域范围在它的子图层中定义.CAScorllLayer 不提供键盘/鼠标处理事件和不显示滚动条.CATextLayer
label没有触发xcode离屏渲染,所以推测绘制文字的 layer (UILabel, CATextLayer, Core Text 等)是使用CPU来进行的渲染,说一下我这样的猜测的理由:文字渲染更多涉及逻辑计算所以
老司机带你走进Core Animation 之CADisplayLink 老司机带你走进Core Animation 之几种动画的简单应用 老司机带你走进Core Animation 之CAShapeLayer和CATextLayer
渲染性能优化的注意点: 隐藏的绘制:catextlayer 和 uilabel 都是将 text 画入 backing image 的。
渲染性能优化的注意点: 隐藏的绘制:catextlayer 和 uilabel 都是将 text 画入 backing image 的。
layer.allowsGroupOpacity/layer.opacity) 采用了光栅化的 layer (layer.shouldRasterize) 绘制了文字的 layer (UILabel, CATextLayer
老司机带你走进Core Animation 之CADisplayLink 老司机带你走进Core Animation 之几种动画的简单应用 老司机带你走进Core Animation 之CAShapeLayer和CATextLayer
CALayer Tree CALayer 是所有 layer 的基类,其派生类会有一些特定的功能,比如绘制文本的 CATextLayer、渐变效果的 CAGradientLayer 等等。
主要原因有以下几种: 隐式绘制 CGContext 文本CATextLayer 和 UILabel 光栅化 shouldRasterize 离屏渲染 可伸缩图片 shadowPath 混合和过度绘制 减少图层数量