Skip to content

Label 组件参考

Label 组件用来显示一段文字,文字可以是系统字体,TrueType 字体、BMFont 字体或艺术数字。另外,Label 还具有排版功能。

label-property

点击 属性检查器 下面的 添加组件 按钮,然后从 UI 中选择 Label,即可添加 Label 组件到节点上。

Label 的组件接口请参考 Label API

具体使用方法可参考范例 LabelGitHub | Gitee)。

Label 属性

属性功能说明
CustomMaterial自定义材质,使用方法参考 自定义材质
Color文字颜色。
String文本内容字符串。
HorizontalAlign文本的水平对齐方式。可选值有 LEFT、CENTER 和 RIGHT。
VerticalAlign文本的垂直对齐方式。可选值有 TOP、CENTER 和 BOTTOM。
FontSize文本字体大小。
FontFamily文字字体名字。在使用系统字体时生效。
LineHeight文本的行高。
Overflow文本的排版方式,目前支持 CLAMP、SHRINK 和 RESIZE_HEIGHT。详情见下方的 Label 排版 或者 文字排版
EnableWrapText是否开启文本换行。(在排版方式设为 CLAMP、SHRINK 时生效)
Font指定文本渲染需要的 字体资源。若要使用艺术数字字体,请参考 艺术数字资源 文档进行配置。
如果使用系统字体,则此属性可以为空。
UseSystemFont布尔值,是否使用系统字体。
CacheMode文本缓存类型,仅对 系统字体TTF 字体有效,BMFont 字体无需进行这个优化。包括 NONEBITMAPCHAR 三种模式。详情见下方的 文本缓存类型
IsBold文字是否加粗,支持系统字体以及部分 TTF 字体。当 CacheMode 为 CHAR 模式时暂不生效。
IsItalic文字是否倾斜,支持系统字体以及 TTF 字体。当 CacheMode 为 CHAR 模式时暂不生效。
IsUnderline文字是否加下划线,支持系统字以及 TTF 字体。当 CacheMode 为 CHAR 模式时暂不生效。

Label 排版

属性功能说明
CLAMP文字尺寸不会根据 Content Size 的大小进行缩放。
Wrap Text 关闭的情况下,按照正常文字排列,超出 Content Size 的部分将不会显示。
Wrap Text 开启的情况下,会试图将本行超出范围的文字换行到下一行。如果纵向空间也不够时,也会隐藏无法完整显示的文字。
SHRINK文字尺寸会根据 Content Size 大小进行自动缩放(不会自动放大,最大显示 Font Size 规定的尺寸)。
Wrap Text 开启时,当宽度不足时会优先将文字换到下一行,如果换行后还无法完整显示,则会将文字进行自动适配 Content Size 的大小。
Wrap Text 关闭时,则直接按照当前文字进行排版,如果超出边界则会进行自动缩放。
RESIZE_HEIGHT文本的 Content Size 会根据文字排版进行适配,这个状态下用户无法手动修改文本的高度,文本的高度由内部算法自动计算出来。

文本缓存类型(Cache Mode)

类型功能说明
NONE默认值,Label 中的整段文本将生成一张位图。
BITMAP选择后,Label 中的整段文本仍将生成一张位图,但是会尽量参与 动态合图。只要满足动态合图的要求,就会和动态合图中的其它 Sprite 或者 Label 合并 Draw Call。由于动态合图会占用更多内存,该模式只能用于文本不常更新的 Label。此模式在节点安排合理的情况下可大幅降低 Draw Call,请酌情选择使用
CHAR原理类似 BMFont,Label 将以“字”为单位将文本缓存到全局共享的位图中,相同字体样式和字号的每个字符将在全局共享一份缓存。能支持文本的频繁修改,对性能和内存最友好。不过目前该模式还存在如下限制,我们将在后续的版本中进行优化:
1. 该模式只能用于字体样式和字号(通过记录字体的 fontSize、fontFamily、color、outline 为关键信息,以此进行字符的重复使用,其他有使用特殊自定义文本格式的需要注意)固定,并且不会频繁出现巨量未使用过的字符的 Label。这是为了节约缓存,因为全局共享的位图尺寸为 1024 * 1024,只有场景切换时才会清除,一旦位图被占满后新出现的字符将无法渲染。
2. Overflow 不支持 SHRINK。
3. 不能参与动态合图(同样启用 CHAR 模式的多个 Label 在渲染顺序不被打断的情况下仍然能合并 Draw Call)
4. 目前暂不支持 IsBoldIsItalicIsUnderline 属性。

注意:Cache Mode 对所有平台都有优化效果。