UIScrollView复用节点示例
来源:互联网 发布:文化部对网络直播 编辑:程序博客网 时间:2024/05/31 15:18
重要脚本:UIPanel,UIScrollView,UIDragScrollView,UIWrapContent
记得item挂UIDragScrollView和BoxCollider哦
如下图,先把物体和脚本弄好
ReuseScroll就是自己写的复用脚本了
代码如下:
using UnityEngine;using System.Collections;using System.Collections.Generic;public class ReuseScroll : MonoBehaviour{ /// <summary> /// 数据类 /// </summary> public class MyData { public MyData(string name) { this.name = "name_" + name; } public string name; } public UIWrapContent wrapContent; private Dictionary<int, GameObject> m_index2Item = new Dictionary<int, GameObject>(); /// <summary> /// 数据列表 /// </summary> private List<MyData> m_data = new List<MyData>(); protected void Start() { InitData(); //启动wrapContent// wrapContent.enabled = true; //实现复用的托管方法// wrapContent.onInitializeItem = (go, wrapIndex, realIndex) => { realIndex = -realIndex; if (!m_index2Item.ContainsKey(realIndex)) { m_index2Item.Add(realIndex, go); } var actv = realIndex >= 0 && m_data.Count > realIndex; go.SetActive(actv); if (actv) go.GetComponentInChildren<UILabel>().text = m_data[realIndex].name; }; } protected void Update() { //按A键添加数据并更新列表// if (Input.GetKeyDown(KeyCode.A)) { var index = m_data.Count; AddData(new MyData(index.ToString())); if (m_index2Item.ContainsKey(index)) { var go = m_index2Item[index]; if (go.transform.localPosition.y <= 0) { go.SetActive(true); go.GetComponentInChildren<UILabel>().text = m_data[index].name; } } } } /// <summary> /// 初始化数据 /// </summary> private void InitData() { for (int i = 0; i < 4; ++i) { m_data.Add(new MyData(i.ToString())); } } /// <summary> /// 添加数据 /// </summary> private void AddData(MyData data) { m_data.Add(data); }}
效果如下,只需要几个item,复用可以显示无限个item,按A键即可插入新的数据并更新列表
希望大家有更好的办法的话,可以分享交流
0 0
- UIScrollView复用节点示例
- cocos2d-X 节点(UIScrollView.h)API
- UIScrollView的基本用法和简单示例
- IOS UIScrollView——简单示例
- 用TinyXml做XML解析示例 TinyXml查找唯一节点及修改节点操作
- 用TinyXml做XML解析示例 TinyXml查找唯一节点及修改节点操作
- 节点流的简单示例
- zTree框架添加节点示例
- JavaScript DOM节点添加示例
- zTree框架添加节点示例
- Hadoop单节点示例搭建
- UIScrollView
- UIScrollView
- UIscrollView
- UIscrollView
- UIScrollView
- UIScrollView
- UIscrollView
- 51cto 学院的培训职业路线图
- sql的aggregate
- 简单聊聊8583
- windows下怎么判断一个程序是否卡死了?例如:导入oracle的pde文件时,进度条不走了,怎么判断还在进行输入导入?
- AndroidUI:PopupMenu
- UIScrollView复用节点示例
- NLTK使用
- 论文笔记| 几分钟看完ResNet的融合特性及冗余性分析的三篇文章
- HTTP学习笔记(一)
- Android Studio插件整理
- 关于console.log()在IE浏览器的兼容模式下不可用的问题
- 奇异值分解和特征值分解
- 石子合并-环
- 指针与数组名