cocos setPosition 之坑

在使用Cocos2d-x的lua接口时,若尝试在Panel创建前一帧通过setPosition改变UI控件的位置,可能会遇到无效的情况。这是因为Panel在创建后才会更新子节点的位置。为解决此问题,需要在设置位置后手动请求Panel更新子节点布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对相对布局Panel里的UI控件的setPosition()时,在该panel创建的前一帧对ui set是无效的,等到该panel创建完之后,set可有效,如果要在创建之前改变位置,方法如下:
ui:getLayoutParameter():setMargin({ left = 10, right = 0, top = 0, bottom = 0 })
ui:getParent():requestDoLayout()
需要告知其parent请求重新布局,不然你再次setMargin时会无效,因为
parent已创建完成,感知不到变化,内部不是dirty状态,不会重新对子节点定位,所以需要手工地请求一次requestDoLayout(),让Panel对子节点新的设置生效
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值