Cocos Creator 之 Label的实际宽高改变文本背景大小及常用方法
- cocos
- -227分钟前
- 1004热度
- 0评论
有些情况下,我们需要根据文本的宽、高动态设置文本背景的大小。
这里汇总了几种一些案例,以及一些文本转换的常用方法,希望对您有用。
下面是3.0以后的,主要用到的是强制刷新label,然后可以获取实际的宽高
label.updateRenderData(true)
const desc = "这是一段文本内容这是一段文本内容";
const label = this.labelNode.getComponent(Label);
label.string = desc;
// 立即更新渲染数据,用于获取文本的实际宽高
label.updateRenderData(true);
// 检测文本宽度是否超过限定宽度,倘若超过则设置溢出模式
const labelWidth = this.labelNode.getComponent(UITransform).width;
if (labelWidth > 450) {
label.overflow = Overflow.RESIZE_HEIGHT;
this.labelNode.getComponent(UITransform).width = 450;
label.updateRenderData(true);
}
// 根据文本的宽高设置修改背景宽高
const labelSize = this.labelNode.getComponent(UITransform).contentSize;
const bgTransform = this.bgNode.getComponent(UITransform);
bgTransform.setContentSize(labelSize.width, labelSize.height);
2.x的版本里强制刷新label的方法是:_forceUpdateRenderData();
label.getComponent(cc.Label).string = msg;
label.getComponent(cc.Label)._forceUpdateRenderData();
转自:https://blog.csdn.net/qq_24726043/article/details/148216548
