AchievePrivilegeView = AchievePrivilegeView or BaseClass(BaseView) local AchievePrivilegeView = AchievePrivilegeView function AchievePrivilegeView:__init() self.base_file = "achievement" self.layout_file = "AchievePrivilegeView" self.layer_name = "Activity" self.destroy_imm = true self.use_background = G_USING_BG --全屏界面默认使用这个参数 --self.hide_maincancas = true --全屏界面需要放开隐藏主UI self.change_scene_close = true self.append_to_ctl_queue = false --是否要添加进界面堆栈 self.need_show_money = false --是否要显示顶部的金钱栏 self.is_set_zdepth = true self.model = AchieveModel:getInstance() self.privilege_data = self.model:GetAchievePrivilegeTabData() -- 获取特权按钮数据 self.privilege_item = {} self.load_callback = function () self:LoadSuccess() self:AddEvent() end self.open_callback = function ( ) self:OpenSuccess() end self.switch_callback = function(index) self:SwitchTab(index) end self.destroy_callback = function ( ) self:DestroySuccess() end end function AchievePrivilegeView:Open( ) --self.data = data BaseView.Open(self) end function AchievePrivilegeView:LoadSuccess() local nodes = { "container","container/ScrollView_item/Viewport/Content_item", "container/ScrollView_item","bg:img", "btn_close:obj", "lb_title:tmp", } self:GetChildren(nodes) self:UpdateBaseView( ) end function AchievePrivilegeView:UpdateBaseView( ) local closeWin_callback = function() self:Close() end lua_resM:setOutsideImageSprite(self, self.bg_img, GameResPath.GetViewBigBg('achi_privilege_bg2'), false) self.lb_title_tmp.text = "成就里程碑" -- self.tabWindowComponent = UITabWindow.New(self.transform,{},select_callback,closeWin_callback,self.background_wnd,self.container, UITabWindow.SizeSmallNoTab, false,nil,true) -- self.tabWindowComponent:SetBackgroundRes("achi_privilege_bg2") -- self.tabWindowComponent:SetTitleText("特权预览") end function AchievePrivilegeView:AddEvent() local on_click = function ( click_obj ) if self.btn_close_obj == click_obj then self:Close() end end AddClickEvent(self.btn_close_obj, on_click) end function AchievePrivilegeView:OpenSuccess() self:UpdateView() end function AchievePrivilegeView:UpdateView() local cur_index = self.model:GetCurPrivilegeStage() -- for k, v in ipairs(self.privilege_data) do -- local item = self.privilege_item[k] -- if not item then -- item = AchievePrivilegeItem.New(self.Content_item) -- self.privilege_item[k] = item -- end -- item:SetData(v, k) -- end -- local callback = function(index) -- self:ChangeTab(index) -- end self.item_creator = self.item_creator or self:AddUIComponent(UI.ItemListCreator) self.item_creator:Reset() local ITEM_WIDTH = 253 local START_X = 15 local info = { data_list = self.privilege_data, item_con = self.Content_item, scroll_view = self.ScrollView_item, item_class = AchievePrivilegeItem, item_width = ITEM_WIDTH, start_x = START_X, start_y = -3, space_y = 0, -- add_width = 1000, reuse_item_num = 5, create_frequency = 0.01, alignment = UnityEngine.TextAnchor.UpperLeft, on_update_item = function(item, i, v) item:SetData(v, i) end, } self.item_creator:UpdateItems(info) SetSizeDeltaX(self.Content_item, START_X + ITEM_WIDTH * #self.privilege_data) if cur_index > 3 then self.item_creator:ScrollToItem(cur_index) end end function AchievePrivilegeView:SwitchTab( index ) end function AchievePrivilegeView:DestroySuccess( ) -- if self.tabWindowComponent then -- self.tabWindowComponent:DeleteMe() -- self.tabWindowComponent = nil -- end for k, v in pairs(self.privilege_item) do v:DeleteMe() v = nil end self.privilege_item = nil end