KLRenderItem.lua 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. ---@class KLRenderItem:UIKmlLuaPanelBase
  2. ---@field view KLRenderItemView
  3. ---@field baseUI KLRenderPanel
  4. local KLRenderItem = class(UIKmlLuaPanelBase)
  5. local this = KLRenderItem
  6. ---创建时调用一次
  7. function this:Init()
  8. GUI:DataListInitData(self.view.datalist11,
  9. function()
  10. return self:ItemCountFunc()
  11. end,
  12. function(realIndex)
  13. return self:ItemGetFunc(realIndex)
  14. end,
  15. function(realIndex, kmlCtrl)
  16. return self:ItemInitFunc(realIndex, kmlCtrl)
  17. end,
  18. function(realIndex, kmlCtrl)
  19. return self:ItemUpdateFunc(realIndex, kmlCtrl)
  20. end)
  21. self.equipIdx = {}
  22. self.equipItems = {}
  23. end
  24. function this:ItemCountFunc()
  25. return #self.equips
  26. end
  27. function this:ItemGetFunc()
  28. local item = GUI:UIPanel_Open("dev/outui/AppearGroup/Item/KLSuitEquip/KLSuitEquipItem", self.view.datalist11, self, nil, true)
  29. local kmlCtrl = item.view.root
  30. self.equipItems[kmlCtrl] = item
  31. return kmlCtrl
  32. end
  33. function this:ItemInitFunc()
  34. end
  35. ---@param kmlCtrl KingML.KmlControl
  36. function this:ItemUpdateFunc(realIndex, kmlCtrl)
  37. local item = self.equipItems[kmlCtrl]
  38. local luaIndex = realIndex + 1
  39. local isSelect = self.curSelectIndex == luaIndex
  40. item:UpdateUI(self.equips[luaIndex].id, luaIndex, isSelect)
  41. end
  42. ---@param equipItem KLSuitEquipItem
  43. function this:BtnEquipOnSelect(equipItem)
  44. if self.curEquipItem then
  45. self.curEquipItem:SetState(false)
  46. end
  47. self.curEquipItem = equipItem
  48. equipItem:SetState(true)
  49. end
  50. ---@param equips
  51. function this:SetArgs(equips, titleStr, itemY, luaIndex)
  52. self.equips = equips
  53. self.title = titleStr
  54. self.itemY = itemY
  55. self.luaIndex = luaIndex
  56. end
  57. function this:UpdateUI()
  58. GUI:Text_setString(self.view.Title, self.title)
  59. local w = GUI:GetWidth(self.view.root)
  60. GUI:setContentSize(self.view.root, w, self.itemY)
  61. GUI:DataListUpdateData(self.view.datalist11)
  62. end
  63. ---创建或者刷新界面数据时调用
  64. function this:Refresh()
  65. end
  66. ---注册UI事件和服务器消息
  67. function this:RegistEvents()
  68. end
  69. function this:Close()
  70. end
  71. return this