ZhongJiTuJian = {}
local _cfg = Util:requireCfg("ZhongJiTuJian")
function ZhongJiTuJian:init()
self.RedList = {} --子模块红点存贮
self.select = 1
self.selected = 1
EventManager:add(EventCfg.RED_POINT, Handler(self, self.OnRedShow), self)
e
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-16 02:52:26 |
👁️ 阅读: 6
你代码中的问题是`updateUIxz`函数里硬编码了`for i = 1 , 6 do`,但实际创建的按钮数量是根据`_cfg[self.select].idx`的长度动态生成的,可能超过6个。
**问题分析:**
1. `updateUI`函数中创建按钮的数量是`#_cfg[self.select].idx`
2. `updateUIxz`函数中却固定循环6次(`for i = 1 , 6 do`)
3. 当`#_cfg[self.select].idx`大于6时,第7个及以后的按钮选中框不会隐藏
**修复方案:**
```lua
function ZhongJiTuJian:updateUIxz()
local ui = self.ui
local totalItems = #_cfg[self.select].idx -- 获取当前页的实际项目数量
for i = 1, totalItems do
if i == self.selected then
GUI:setVisible(ui["Image_10"..i], true) -- 使用GUI:setVisible
else
GUI:setVisible(ui["Image_10"..i], false)
end
end
end
```
**修改说明:**
1. 使用`#_cfg[self.select].idx`动态获取当前页的项目数量
2. 将`UILib:setVisible`改为`GUI:setVisible`(根据浮生梦老师前端课程内容)
3. 循环次数与创建按钮的数量保持一致
**函数说明:**
- `#table`:获取表的长度
- `GUI:setVisible(widget, value)`:设置控件可见性
- `widget`:控件对象
- `value`:true显示,false隐藏
这样修改后,无论每页有多少个项目,选中框都能正确显示和隐藏。
← 返回问答库