如图,本来是想美术出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( ),这个接口肯定是从子控件里去找的,不可能找到自己。