上下级控件同名引发的血案

这里写图片描述
如图,本来是想美术出5个星星的图案,让其都能居中显示。本来很简单的一件事,结果导出发现坦克模型跑到框下面去了。然后找了大半个小时才发现居然是模型层跟2个星星的层同名了,而且在同一级。好吧,把模型的名字改了,然后发现还是不行,整个tableview都显示是空的。

--设置tableview里cell的内容
function BuZhenMainUI:setCellContent(cell,tank)
    cell:setVisible(true)
    --星级
    local star = tank.star
    local star1 = cell:getChildByName("Panel_1")
    -- local star1 = ccui.Helper:seekWidgetByName(cell,"Panel_1")--麻痹用这个接口把cell自己给找出来了,下级里面有跟cell同名的控件
    local star2 = ccui.Helper:seekWidgetByName(cell,"Panel_2")
    local star3 = ccui.Helper:seekWidgetByName(cell,"Panel_3")
    local star4 = ccui.Helper:seekWidgetByName(cell,"Panel_4")
    local star5 = ccui.Helper:seekWidgetByName(cell,"Panel_5")
    star1:setVisible(false)
    star2:setVisible(false)
    star3:setVisible(false)
    star4:setVisible(false)
    star5:setVisible(false)
    ...
    ...
end

这里写图片描述

然后发现,一颗星星panel的名字居然跟父控件的名字一样,ccui.Helper:seekWidgetByName(cell,”Panel_1”)居然把自己给筛选出来了,然后star1:setVisible(false)把整个面板隐藏起来了,所以看到的是空的。

以后让美术出UI的时候尽量整个UI里面都不要用同名的空间,同一级肯定是不行,如果上下级出现了同名的,则 ccui.Helper:seekWidgetByName()接口用的话会有问题,应该用getChildByName( ),这个接口肯定是从子控件里去找的,不可能找到自己。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值