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);
|
}
|
|
|
}
|