self.select = 1
for i = 1, 6 do
-- Create Button_1
local Button_1 = GUI:Button_Create(ui.ListView_1, "Button_"..i, 0, 317, string.format("res/custom/FaBaoHeCheng/%d.png",i))
GUI:Button_setTitleText(Button_1, [[]])
GUI:Button_setTitleColor(Bu
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-21 19:45:07 |
👁️ 阅读: 28
根据你的代码分析,全都置灰的原因是逻辑判断问题。
在你的代码中:
```lua
self.select = 1
for i = 1, 6 do
local num = (i == self.select) and false or true
print(num)
UILib:setGrey(Button_1, num)
end
```
当 `i = 1` 时:
- `(1 == 1)` 为 `true`
- `true and false or true` 结果是 `false`(因为 `and` 优先级高于 `or`)
- 所以 `num = false`
- `UILib:setGrey(Button_1, false)` 表示不置灰
当 `i = 2` 到 `6` 时:
- `(i == 1)` 为 `false`
- `false and false or true` 结果是 `true`
- 所以 `num = true`
- `UILib:setGrey(Button_1, true)` 表示置灰
**问题**:你的逻辑是只有第1个按钮不置灰,其他都置灰。如果你想实现选中状态(选中不置灰,未选中置灰),那么逻辑是正确的,但如果你想让所有按钮都不置灰,需要修改逻辑。
**建议修改**:
```lua
-- 如果想让所有按钮都不置灰
UILib:setGrey(Button_1, false)
-- 或者如果你想根据选中状态设置
local num = (i == self.select) -- 选中为true,未选中为false
UILib:setGrey(Button_1, not num) -- 选中不置灰,未选中置灰
```
检查一下 `UILib:setGrey` 函数的参数含义,通常第二个参数为 `true` 表示置灰,`false` 表示正常显示。
← 返回问答库