UIRoleInfoPopCtr.lua 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. local UIRoleInfoPopCtr = class("UIRoleInfoPopCtr", require("UICtrBase"))
  2. function UIRoleInfoPopCtr:Init(view)
  3. self.view = view
  4. end
  5. ---@param data table 格式为{title, {{itemId, itemTitle, itemDes, itemIcon}, ...}} title为界面标题, itemId为每一项的唯一Id(用于排序), itemTitle为每一项的小标题, itemDes为每一项的描述, itemIcon为每一项的小图标(可为空)
  6. function UIRoleInfoPopCtr:SetData(data)
  7. self.asyncIdx = 0
  8. if data == nil then return end
  9. self.data = data
  10. end
  11. function UIRoleInfoPopCtr:GetAsyncIdx()
  12. self.asyncIdx = self.asyncIdx + 1
  13. return self.asyncIdx
  14. end
  15. function UIRoleInfoPopCtr:GetData()
  16. return self.data
  17. end
  18. function UIRoleInfoPopCtr:OnDispose()
  19. self.data = nil
  20. self.view = nil
  21. self.titleName = nil
  22. self.datas = nil
  23. self.dataLength = nil
  24. end
  25. function UIRoleInfoPopCtr:InitData()
  26. if self.data then
  27. self.titleName = self.data[1]
  28. self.datas = self.data[2]
  29. if self.datas then
  30. table.sort(self.datas, function(a, b)
  31. return a[1] < b[1]
  32. end)
  33. end
  34. else
  35. self.titleName = ''
  36. self.datas = nil
  37. end
  38. self.dataLength = self.datas and #self.datas or 0
  39. end
  40. function UIRoleInfoPopCtr:GetTitleName()
  41. return self.titleName
  42. end
  43. function UIRoleInfoPopCtr:GetDataLength()
  44. return self.dataLength
  45. end
  46. function UIRoleInfoPopCtr:GetDataByIdx(idx)
  47. return self.datas and self.datas[idx] or nil
  48. end
  49. return UIRoleInfoPopCtr