Cocos Creator 之 Label的实际宽高改变文本背景大小及常用方法
有些情况下,我们需要根据文本的宽、高动态设置文本背景的大小。 这里汇总了几种一些案例,以及一些文本转换的常用方法,希望对您有用。 下面是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
