local ui = {}
local nimg = "res/public/1900000682.png"
local pimg = "res/public/1900000683.png"
function ui.init(parent)
local Panel_Click = GUI:Layout_Create(parent, "Panel_Click_" ..1, 0, 1, 200, 90, false)
GUI:setTouchEnabled(Panel_Click, tru
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-07-02 14:50:16 |
👁️ 阅读: 5
你的代码有几个问题导致UI不显示:
1. **缺少父节点创建**:你的`ui.init(parent)`函数需要传入一个有效的父节点,但调用时可能传入了nil或不存在的节点
2. **缺少显示设置**:创建控件后没有设置可见性
3. **缺少界面创建**:根据浮生梦老师前端课程内容,需要先创建主界面
修改后的代码:
```lua
local ui = {}
local nimg = "res/public/1900000682.png"
local pimg = "res/public/1900000683.png"
function ui.init(parent)
-- 检查父节点是否有效
if GUI:Win_IsNull(parent) then
SL:print("父节点无效")
return
end
local Panel_Click = GUI:Layout_Create(parent, "Panel_Click_" .. 1, 0, 1, 200, 90, false)
GUI:setTouchEnabled(Panel_Click, true)
GUI:setVisible(Panel_Click, true) -- 设置可见性
GUI:Layout_setBackGroundImage(Panel_Click, "res/public/bg_bk_001.png")
GUI:Layout_setBackGroundImageScale9Slice(Panel_Click, 0, 40, 0, 40)
local db_zb_att = GUI:Text_Create(Panel_Click, "db_zb_att", 22, 70, 14, "#EFA54A", "职业属性")
GUI:setVisible(db_zb_att, true)
local db_zb_lv = GUI:Text_Create(Panel_Click, "db_zb_lv", 22, 44, 14, "#EFA54A", "装备级别优")
GUI:setVisible(db_zb_lv, true)
GUI:setAnchorPoint(db_zb_lv, 0, 0.5)
GUI:setAnchorPoint(db_zb_att, 0, 0.5)
GUI:setTouchEnabled(db_zb_lv, true)
GUI:setTouchEnabled(db_zb_att, true)
local cb_db_zb_att = GUI:CheckBox_Create(Panel_Click, "cb_db_zb_att", 150, 70, nimg, pimg)
GUI:setVisible(cb_db_zb_att, true)
GUI:setContentSize(cb_db_zb_att, 30, 26)
GUI:setAnchorPoint(cb_db_zb_att, 0, 0.5)
-- 注意:GongNengOBJ.DB_ZB_LV 需要确保已定义
local zb_lv_value = 0
if GongNengOBJ and GongNengOBJ.DB_ZB_LV then
zb_lv_value = GongNengOBJ.DB_ZB_LV
end
GUI:CheckBox_setSelected(cb_db_zb_att, zb_lv_value == 0)
local cb_db_zb_lv = GUI:CheckBox_Create(Panel_Click, "cb_db_zb_lv", 150, 44, nimg, pimg)
GUI:setVisible(cb_db_zb_lv, true)
GUI:setContentSize(cb_db_zb_lv, 30, 26)
GUI:setAnchorPoint(cb_db_zb_lv, 0, 0.5)
GUI:CheckBox_setSelected(cb_db_zb_lv, zb_lv_value == 1)
-- 事件处理
GUI:addOnClickEvent(cb_db_zb_att, function()
GUI:CheckBox_setSelected(cb_db_zb_lv, GUI:CheckBox_isSelected(cb_db_zb_att))
end)
GUI:addOnClickEvent(cb_db_zb_lv, function()
GUI:CheckBox_setSelected(cb_db_zb_att, GUI:CheckBox_isSelected(cb_db_zb_lv))
end)
GUI:addOnClickEvent(db_zb_att, function()
local selected = not GUI:CheckBox_isSelected(cb_db_zb_lv)
GUI:CheckBox_setSelected(cb_db_zb_lv, selected)
GUI:CheckBox_setSelected(cb_db_zb_att, selected)
end)
GUI:addOnClickEvent(db_zb_lv, function()
local selected = not GUI:CheckBox_isSelected(cb_db_zb_lv)
GUI:CheckBox_setSelected(cb_db_zb_lv, selected)
GUI:CheckBox_setSelected(cb_db_zb_att, selected)
end)
end
return ui
```
**调用示例**:
```lua
-- 先创建父节点
local parent = GUI:Win_Create("TestUI", 100, 100, 200, 100, false, false, true, false, false, false, 1)
GUI:setVisible(parent, true)
-- 然后调用你的ui模块
local myUI = require("你的ui模块路径")
myUI.init(parent)
```
主要问题是你没有确保父节点有效,并且创建控件后没有设置可见性。另外,`GongNengOBJ.DB_ZB_LV` 需要确保已定义,否则会报错。
你的代码有几个问题导致UI不显示:
1. **缺少父节点创建**:你的`ui.init(parent)`函数需要传入一个有效的父节点,但调用时可能传入了nil或不存在的节点
2. **缺少显示设置**:创建控件后没有设置可见性
3. **缺少界面创建**:根据浮生梦老师前端课程内容,需要先创建主界面
修改后的代码:
```lua
local ui = {}
local nimg = "res/public/1900000682.png"
local pimg = "res/public/1900000683.png"
function ui.init(parent)
-- 检查父节点是否有效
if GUI:Win_IsNull(parent) then
SL:print("父节点无效")
return
end
local Panel_Click = GUI:Layout_Create(parent, "Panel_Click_" .. 1, 0, 1, 200, 90, false)
GUI:setTouchEnabled(Panel_Click, true)
GUI:setVisible(Panel_Click, true) -- 设置可见性
GUI:Layout_setBackGroundImage(Panel_Click, "res/public/bg_bk_001.png")
GUI:Layout_setBackGroundImageScale9Slice(Panel_Click, 0, 40, 0, 40)
local db_zb_att = GUI:Text_Create(Panel_Click, "db_zb_att", 22, 70, 14, "#EFA54A", "职业属性")
GUI:setVisible(db_zb_att, true)
local db_zb_lv = GUI:Text_Create(Panel_Click, "db_zb_lv", 22, 44, 14, "#EFA54A", "装备级别优")
GUI:setVisible(db_zb_lv, true)
GUI:setAnchorPoint(db_zb_lv, 0, 0.5)
GUI:setAnchorPoint(db_zb_att, 0, 0.5)
GUI:setTouchEnabled(db_zb_lv, true)
GUI:setTouchEnabled(db_zb_att, true)
local cb_db_zb_att = GUI:CheckBox_Create(Panel_Click, "cb_db_zb_att", 150, 70, nimg, pimg)
GUI:setVisible(cb_db_zb_att, true)
GUI:setContentSize(cb_db_zb_att, 30, 26)
GUI:setAnchorPoint(cb_db_zb_att, 0, 0.5)
-- 注意:GongNengOBJ.DB_ZB_LV 需要确保已定义
local zb_lv_value = 0
if GongNengOBJ and GongNengOBJ.DB_ZB_LV then
zb_lv_value = GongNengOBJ.DB_ZB_LV
end
GUI:CheckBox_setSelected(cb_db_zb_att, zb_lv_value == 0)
local cb_db_zb_lv = GUI:CheckBox_Create(Panel_Click, "cb_db_zb_lv", 150, 44, nimg, pimg)
GUI:setVisible(cb_db_zb_lv, true)
GUI:setContentSize(cb_db_zb_lv, 30, 26)
GUI:setAnchorPoint(cb_db_zb_lv, 0, 0.5)
GUI:CheckBox_setSelected(cb_db_zb_lv, zb_lv_value == 1)
-- 事件处理
GUI:addOnClickEvent(cb_db_zb_att, function()
GUI:CheckBox_setSelected(cb_db_zb_lv, GUI:CheckBox_isSelected(cb_db_zb_att))
end)
GUI:addOnClickEvent(cb_db_zb_lv, function()
GUI:CheckBox_setSelected(cb_db_zb_att, GUI:CheckBox_isSelected(cb_db_zb_lv))
end)
GUI:addOnClickEvent(db_zb_att, function()
local selected = not GUI:CheckBox_isSelected(cb_db_zb_lv)
GUI:CheckBox_setSelected(cb_db_zb_lv, selected)
GUI:CheckBox_setSelected(cb_db_zb_att, selected)
end)
GUI:addOnClickEvent(db_zb_lv, function()
local selected = not GUI:CheckBox_isSelected(cb_db_zb_lv)
GUI:CheckBox_setSelected(cb_db_zb_lv, selected)
GUI:CheckBox_setSelected(cb_db_zb_att, selected)
end)
end
return ui
```
**调用示例**:
```lua
-- 先创建父节点
local parent = GUI:Win_Create("TestUI", 100, 100, 200, 100, false, false, true, false, false, false, 1)
GUI:setVisible(parent, true)
-- 然后调用你的ui模块
local myUI = require("你的ui模块路径")
myUI.init(parent)
```
主要问题是你没有确保父节点有效,并且创建控件后没有设置可见性。另外,`GongNengOBJ.DB_ZB_LV` 需要确保已定义,否则会报错。
← 返回问答库