local UICharacterTitle = UIViewClass() function UICharacterTitle:OnOpened(context) self.sortedList = nil self.toggleIndex = -1 self:RegistSystemEvent(EventID.UI_UpdateTitleInfo, self.UpdateInfo) self:RegistSystemEvent(CTL.RedPoint.RedPointKey.TownHead_Title_Type1, self.RefreshTitleRed_Type1) self:RegistSystemEvent(CTL.RedPoint.RedPointKey.TownHead_Title_Type2, self.RefreshTitleRed_Type2) self:RegistSystemEvent(CTL.RedPoint.RedPointKey.TownHead_Title_Type3, self.RefreshTitleRed_Type3) self:RegistSystemEvent(CTL.RedPoint.RedPointKey.TownHead_Title_Type4, self.RefreshTitleRed_Type4) self:RefreshTitleRed_Type1(CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.TownHead_Title_Type1)) self:RefreshTitleRed_Type2(CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.TownHead_Title_Type2)) self:RefreshTitleRed_Type3(CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.TownHead_Title_Type3)) self:RefreshTitleRed_Type4(CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.TownHead_Title_Type4)) --默认选中第一个标签 self.playSound = false self.toggle_TopGroup:SelectIndex(0) self.playSound = true end function UICharacterTitle:UpdateInfo() self:OnSelectSheet(self.toggleIndex) end function UICharacterTitle:OnSelectSheet(index) --跳进对应页签,就消除对应页签的红点 CTL.RedPoint.RemoveRedPoint(CTL.RedPoint.RedPointKey["TownHead_Title_Type" .. index + 1]) self.sortedList = MDL.Title.GetSortedTypeTitleList(index + 1) if not next(self.sortedList) then UIUtils.SetActive(self.group_Empty, true) else UIUtils.SetActive(self.group_Empty, false) end self.scrollRect_CharacterTitle:ReloadAll(self.sortedList) local selectIndex = 0 for i, v in ipairs(self.sortedList) do if self.selectCellData == v then selectIndex = i - 1 end end --默认选中第一个 --如果有已经选中的,选中上一个 if self.scrollRect_CharacterTitle.Count > 0 then self.playSound = false self.scrollRect_CharacterTitle:SelectIndex(selectIndex, true) self.playSound = true end end function UICharacterTitle:OnCellInit(scrollRect, index, cellTable, data) if data.hasGet then if data.isWear then cellTable.obj_state:SetState(1) else if data.isNew then cellTable.obj_state:SetState(2) else cellTable.obj_state:SetState(3) end end if data.invalidTimeStamp == -1 then cellTable.UIScrollText:SetText(UIUtils.GetLocalizedTxt(Const_IDS.IDS_Title_Forever)) cellTable.state_txt_Info:SetState(0) else cellTable.UIScrollText:SetText(UTL.Time.FormatTimeForTitle(data.invalidTimeStamp - UTL.Time.GetServerTimestamp())) cellTable.state_txt_Info:SetState(1) end else cellTable.obj_state:SetState(0) cellTable.UIScrollText:SetText(string.format(UIUtils.GetLocalizedTxt(Const_IDS.IDS_Title_Get) .. UIUtils.GetLocalizedTxt(Const_IDS[data.titleConfig.Describe]), data.titleConfig.parm1, data.titleConfig.parm2)) cellTable.state_txt_Info:SetState(2) end --称号资源 CTL.Title.SetTitleShow(cellTable.titleTemplate, data.titleConfig) --属性 local attr = data.titleConfig.Attr_Table local length = #attr for i = 1, length do local comp = cellTable["group_Feature_" .. i] UIUtils.SetActive(comp.gameObject, true) UTL.Attr.SetAttrItemOneLabel(comp.img_Feature, comp.txt_Number, attr[i].AttrType, attr[i].AttrNum) end for i = length + 1, 4 do UIUtils.SetActive(cellTable["group_Feature_" .. i].gameObject, false) end UIUtils.SetActive(cellTable.group_Customized, data.titleConfig.CustomizedOrNot) end function UICharacterTitle:OnCellClicked(scrollRect, index, cellTable, target, data) self.selectCellData = data if data.isWear then UIUtils.SetLabelText(self.lab_Change, Const_IDS.IDS_Title_Remove) else UIUtils.SetLabelText(self.lab_Change, Const_IDS.IDS_Title_Change) end if not data.hasGet and self.playSound then CTL.Sound.PlayGameSound("UI_invalid") end end function UICharacterTitle:OnValueChanged(comp, index) if comp == self.toggle_TopGroup then if self.toggleIndex == index then return end self.toggleIndex = index self.selectCellData = nil if self:RefreshNewTitle() == false then self:OnSelectSheet(self.toggleIndex) end end end --通知服务器,去掉“新”标识 function UICharacterTitle:RefreshNewTitle() local isSelectToggleWithResp = false if self.sortedList then for _, v in ipairs(self.sortedList) do if v.isNew then isSelectToggleWithResp = true break end end end if isSelectToggleWithResp then MDL.Title.TitleBrowsedReq(self.sortedList) end return isSelectToggleWithResp end function UICharacterTitle:OnButtonClicked(comp) if comp == self.btn_Change then if self.selectCellData then if self.selectCellData.isWear then MDL.Title.TitleChangeReq(0) else MDL.Title.TitleChangeReq(self.selectCellData.titleConfig.GeneralTitleID, Const_IDS.IDS_Title_Success) end end end end function UICharacterTitle:RefreshTitleRed_Type1(value) self.toggle_TopGroup:SetRedPoint(0, value) end function UICharacterTitle:RefreshTitleRed_Type2(value) self.toggle_TopGroup:SetRedPoint(1, value) end function UICharacterTitle:RefreshTitleRed_Type3(value) self.toggle_TopGroup:SetRedPoint(2, value) end function UICharacterTitle:RefreshTitleRed_Type4(value) self.toggle_TopGroup:SetRedPoint(3, value) end function UICharacterTitle:OnClosed() self:RefreshNewTitle() end return UICharacterTitle