using System.Linq; using UnityEngine; namespace vnxbqy.UI { public class FairySiegeBaseLvInfoWin : Window { [SerializeField] ButtonEx btnClose; [SerializeField] ScrollerController scroller; FairySiegeActModel model { get { return ModelCenter.Instance.GetModel(); } } #region Build-in protected override void AddListeners() { btnClose.SetListener(CloseClick); } protected override void BindController() { } protected override void OnPreOpen() { scroller.OnRefreshCell += OnRefreshCell; } protected override void OnPreClose() { scroller.OnRefreshCell -= OnRefreshCell; } protected override void OnAfterOpen() { CreateScroller(); } protected override void OnAfterClose() { } #endregion private void OnRefreshCell(ScrollerDataType type, CellView cell) { if (type == ScrollerDataType.Header) { var _cell = cell.GetComponent(); _cell?.Display(cell.index); } else { var _cell = cell.GetComponent(); _cell?.Display(cell.index, cell); } } private void CreateScroller() { scroller.Refresh(); var list = FamilyGCZCampLVConfig.GetKeys().Select(int.Parse).ToList(); list.Sort(); if (!list.IsNullOrEmpty()) { for (var i = 0; i < list.Count; i++) { scroller.AddCell(ScrollerDataType.Header, list[i]); CellInfo cellInfo = new CellInfo(); cellInfo.infoInt1 = i - 1 >= 0 ? list[i - 1] : -1; scroller.AddCell(ScrollerDataType.Normal, list[i], cellInfo); } } scroller.Restart(); } } }