1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine.UI;
- /// <summary>
- /// 滚动列表优化,元素循环使用
- /// </summary>
- public class TestMain : MonoBehaviour
- {
- /// <summary>
- /// 测试用数据
- /// </summary>
- private List<Item> mData = new List<Item>();
- /// <summary>
- /// 滚动列表优化
- /// </summary>
- private UIWarpContent1 warpContent = null;
- /// <summary>
- /// 初始化
- /// </summary>
- private void Start()
- {
- // 组织测试数据
- for (int i = 0; i < 50; i++)
- {
- mData.Add(new Item("测试:" + i.ToString()));
- }
- warpContent = gameObject.transform.GetComponentInChildren<UIWarpContent1>();
- warpContent.onInitializeItem = onInitializeItem;
- // 注意:目标init方法必须在warpContent.onInitializeItem之后
- warpContent.Init(mData.Count);
- }
- /// <summary>
- /// 元素初始化
- /// </summary>
- /// <param name="go"> 元素 </param>
- /// <param name="dataIndex"> 数据索引 </param>
- private void onInitializeItem(GameObject go, int dataIndex)
- {
- Text text = go.transform.Find("Text").GetComponent<Text>();
- text.text = "i:" + dataIndex + "_N:" + mData[dataIndex].Name();
- }
- /// <summary>
- /// 测试用数据结构
- /// </summary>
- public class Item
- {
- /// <summary>
- /// 名称
- /// </summary>
- private string name;
- /// <summary>
- /// 构造函数
- /// </summary>
- /// <param name="name"> 名称字符串 </param>
- public Item(string name)
- {
- this.name = name;
- }
- /// <summary>
- /// 获取名称
- /// </summary>
- /// <returns> 名称字符串 </returns>
- public string Name()
- {
- return this.name;
- }
- /// <summary>
- /// 删除
- /// </summary>
- public void destroy()
- {
- this.name = null;
- }
- }
- }
|