南锋

南奔万里空,脱死锋镝余

Cocos Creator 修改 Label 后尺寸未更新:updateRenderData 与下一帧读取

修改 Label 后立即获取最新尺寸

在游戏开发过程中,经常需要动态修改 Label 并获取更新后的尺寸。
但是我们在获取长度的时候会发现,获取到的字符长度是修改前的,并非修改后我们想要获取的那个字符的长度。

这时有两个办法可以解决:
1 使用定时器
使用定时器,在下一帧的时候刷新Label并获取它的长度
2 使用updateRenderData(true)刷新(推荐使用该方法)
示例代码:

1
2
label.node.getComponent(Label).updateRenderData(true);
let size = label.node.getComponent(UITransform);