//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, December 07, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { [XLua.Hotfix] public class LoginRewardWin : Window { //登录奖励 #region Built-in [SerializeField] ScrollerController m_ScrollerController_1; [SerializeField] ScrollerController m_ScrollerController_2; LoginRewardModel m_LoginRewardModel; LoginRewardModel loginRewardModel { get { return m_LoginRewardModel ?? (m_LoginRewardModel = ModelCenter.Instance.GetModel()); } } List SortList = new List(); protected override void BindController() { m_ScrollerController_1.OnRefreshCell += OnRefreshGridCell_1; m_ScrollerController_2.OnRefreshCell += OnRefreshGridCell_2; } protected override void AddListeners() { } protected override void OnPreOpen() { ChooseDay(); OnCreateGridLineCell_1(m_ScrollerController_1); OnCreateGridLineCell_2(m_ScrollerController_2); if (loginRewardModel.SelectedNow >= 3) { m_ScrollerController_1.JumpIndex(loginRewardModel.SelectedNow); } } protected override void OnAfterOpen() { loginRewardModel.LoginAwardInfoUpdate += LoginAwardInfoUpdate; } protected override void OnPreClose() { } protected override void OnAfterClose() { loginRewardModel.LoginAwardInfoUpdate -= LoginAwardInfoUpdate; } private void LoginAwardInfoUpdate() { m_ScrollerController_1.m_Scorller.RefreshActiveCellViews(); m_ScrollerController_2.m_Scorller.RefreshActiveCellViews(); } #endregion void OnCreateGridLineCell_1(ScrollerController gridCtrl) { gridCtrl.Refresh(); foreach (var key in loginRewardModel.LoginAwardDayDic.Keys) { gridCtrl.AddCell(ScrollerDataType.Header, key); } gridCtrl.Restart(); } private void OnRefreshGridCell_1(ScrollerDataType type, CellView cell) { int Index = cell.index; LogInDayNumber logInDayNumber = cell.GetComponent(); logInDayNumber.SetInDayNumber(Index, loginRewardModel.SelectedNow); logInDayNumber.DayNumberBtn.SetListener(()=> { if (loginRewardModel.SelectedNow != Index) { loginRewardModel.SelectedNow = Index; m_ScrollerController_1.m_Scorller.RefreshActiveCellViews();//刷新可见 OnCreateGridLineCell_2(m_ScrollerController_2); } }); } void OnCreateGridLineCell_2(ScrollerController gridCtrl) { gridCtrl.Refresh(); for (int i = 0; i < 10; i++) { gridCtrl.AddCell(ScrollerDataType.Header, i); } gridCtrl.Restart(); } private void OnRefreshGridCell_2(ScrollerDataType type, CellView cell) { int Index = cell.index; EntryInformationCell entryInformationCell = cell.GetComponent(); entryInformationCell.GetDisplayInformation(1); entryInformationCell.mButton.SetListener(()=> { // m_ScrollerController_2.m_Scorller.RefreshActiveCellViews();//刷新可见 }); } public void ChooseDay()//选择天 { foreach (var key in loginRewardModel.RedPointDic.Keys)//红点选择可领取的天 { if (loginRewardModel.RedPointDic[key].state == RedPointState.GetReward) { loginRewardModel.SelectedNow = key; return; } } loginRewardModel.SelectedNow = loginRewardModel.DayNow; } private void ToAddSorting() { SortList.Clear(); foreach (var key in loginRewardModel.LoginAwardDayDic.Keys) { if (key == loginRewardModel.SelectedNow) { var loginReward = loginRewardModel.LoginAwardDayDic[key]; for (int i = 0; i < loginReward.TemplateList.Length; i++) { var TemplateId = loginReward.TemplateList[i]; SortList.Add(TemplateId); } } } SortList.Sort(Compare); } int Compare(int x, int y)//数组排列 { return 1; } } }