using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class QYStoreWin : UIBase { [SerializeField] ScrollerController scroller; protected override void OnPreOpen() { StoreModel.Instance.selectStoreFuncType = StoreFunc.Qunying; scroller.OnRefreshCell += OnRefreshCell; StoreModel.Instance.RefreshShopEvent += Display; StoreModel.Instance.RefreshBuyShopLimitEvent += Display; Display(); } protected override void OnPreClose() { scroller.OnRefreshCell -= OnRefreshCell; StoreModel.Instance.RefreshShopEvent -= Display; StoreModel.Instance.RefreshBuyShopLimitEvent -= Display; } void Display() { CreateScroller(); } void CreateScroller() { if (!StoreModel.Instance.storeTypeDict.ContainsKey((int)StoreModel.Instance.selectStoreFuncType)) { return; } scroller.Refresh(); int jumpIndex = -1; var list = StoreModel.Instance.storeTypeDict[(int)StoreModel.Instance.selectStoreFuncType]; for (int i = 0; i < list.Count; i++) { if (i % 3 == 0) { scroller.AddCell(ScrollerDataType.Header, i); } if (jumpIndex == -1 && list[i].shopId == StoreModel.Instance.jumpShopID) { jumpIndex = i / 3; } } scroller.Restart(); scroller.lockType = EnhanceLockType.KeepVertical; if (StoreModel.Instance.jumpShopID != 0) { scroller.JumpIndex(jumpIndex); StoreModel.Instance.jumpShopID = 0; } } void OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell as StoreLineCell; _cell.Display(cell.index); } }