cocoscreator 2.01 cc.Label在修改string之后,width没有改变

在浏览器中运行就是不行的,一下是项目事例
labelTest.zip (474.4 KB),

试试延迟一点时间去获取宽度呢,可能实际改动是在下一帧生效的

1赞

试试调一下label._updateRenderData(true)

延迟一帧是可以的 ,但是感觉比较反人类

this.scheduleOnce(()=>{
console.log(‘labelWidth =’,this.label.node.getContentSize().width);
},0)

这样试了一下是可以的

假设需要根据label的size做一些位置上的变化,延迟一帧的写法就会导致出现闪现的问题的。

@panda
@Knox

我设置延时2s还是不变,是不是不是下一帧 才改变,而是渲染的时候才修改的。这个大家都怎么处理的

https://forum.cocos.com/t/label--updaterenderdata-true/65934

cocosCreator 2.0.8 版本没有这个api。求给个提示

监听下cc.Node.EventType.SIZE_CHANGED

我就是2.0.8,改完lab的大小后。。手动_updateRenderData一下当前的lab就可以了啊