/// <summary>
 /// 初始化排名显示
 /// </summary>
 private void InitRankList()
 {
     for (int i = 0; i < fixedCount; i++)
     {
         ShowPlayerInfo tempItem = Instantiate(itemPrefab, content);
         dataList.Add(tempItem);
         dataListOrigin.Add(tempItem);
         SetRankInfo(tempItem, i);
     }
 }
 /// <summary>
 /// 设置每个显示元素的位置
 /// </summary>
 /// 显示元素
 /// <param name="trans"></param>
 /// 显示的是第几个元素
 /// <param name="index"></param>
 private void SetRankPos(ShowPlayerInfo trans, int index)
 {
     trans.rectTransform.anchoredPosition = new Vector2
                                            (
         firstItemAnchoredPos.x,
         index == 0
             ? firstItemAnchoredPos.y
             : firstItemAnchoredPos.y - index * (layout.cellSize.y + layout.spacing.y)
                                            );
 }
    private bool initTrigger = true;                                            //第一次按按钮初始化,之后不用

    /// <summary>
    /// 监听滚动的事件,在检测到有元素超出显示范围时复用
    /// </summary>
    private void OnScroll()
    {
        //向下滚动
        while (content.anchoredPosition.y >=
               layout.padding.top + (headIndex + 1) * (layout.cellSize.y + layout.spacing.y) &&
               tailIndex != totalCount - 1)
        {
            //将数据列表中的第一个元素移动到最后一个
            ShowPlayerInfo item = dataList[0];
            dataList.Remove(item);
            dataList.Add(item);

            //设置位置
            SetRankPos(item, tailIndex + 1);
            //设置显示
            SetRankInfo(item, tailIndex + 1);

            headIndex++;
            tailIndex++;
        }

        //向上滑
        while (content.anchoredPosition.y <= layout.padding.top + headIndex * (layout.cellSize.y + layout.spacing.y) &&
               headIndex != 0)
        {
            //将数据列表中的最后一个元素移动到第一个
            ShowPlayerInfo item = dataList.Last();
            dataList.Remove(item);
            dataList.Insert(0, item);

            //设置位置
            SetRankPos(item, headIndex - 1);
            //设置显示
            SetRankInfo(item, headIndex - 1);

            headIndex--;
            tailIndex--;
        }
    }
 /// <summary>
 /// 设置显示元素内容
 /// </summary>
 /// 显示元素
 /// <param name="trans"></param>
 /// 对应显示内容顺序
 /// <param name="index"></param>
 private void SetRankInfo(ShowPlayerInfo trans, int index)
 {
     trans.ShowRankInfo(UserList[index], index);
 }