博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UIScrollView复用节点示例
阅读量:1984 次
发布时间:2019-04-27

本文共 2011 字,大约阅读时间需要 6 分钟。

重要脚本:UIPanel,UIScrollView,UIDragScrollView,UIWrapContent

记得item挂UIDragScrollView和BoxCollider哦

如下图,先把物体和脚本弄好

ReuseScroll就是自己写的复用脚本了

代码如下:

using UnityEngine;using System.Collections;using System.Collections.Generic;public class ReuseScroll : MonoBehaviour{    ///     /// 数据类    ///     public class MyData    {        public MyData(string name)        {            this.name = "name_" + name;        }        public string name;    }    public UIWrapContent wrapContent;    private Dictionary
m_index2Item = new Dictionary
(); ///
/// 数据列表 /// private List
m_data = new List
(); 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
().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
().text = m_data[index].name; } } } } ///
/// 初始化数据 /// private void InitData() { for (int i = 0; i < 4; ++i) { m_data.Add(new MyData(i.ToString())); } } ///
/// 添加数据 /// private void AddData(MyData data) { m_data.Add(data); }}

效果如下,只需要几个item,复用可以显示无限个item,按A键即可插入新的数据并更新列表

希望大家有更好的办法的话,可以分享交流

你可能感兴趣的文章
使用Spring Boot写一个简单的Hello World
查看>>
Spring Boot整合Servlet使用
查看>>
SpringBoot 文件上传
查看>>
我居然在Github上找到了一个完整的停车系统(附源码地址)
查看>>
大厂经典面试题:Redis为什么这么快?
查看>>
精通Spring?请吃我一狗腿!
查看>>
培训班老师说可以用这个干掉一大批面试者
查看>>
花了 500块大洋 ,买来的677页Java性能调优笔记,感觉4年Java性能调优都白学了
查看>>
靠这本,在某宝花了399大洋的宝典,熬夜七天,吊打面试官,终进大厂
查看>>
阿里四面,居然栽在一道排序算法上
查看>>
【Java编码规范】《阿里巴巴Java开发手册(正式版)》发布!
查看>>
如何在二三线城市月薪过万(一)看完这篇后端简历优化,包你面试不断
查看>>
源码不止Spring!发布GitHub一天,获赞7.5K 阿里Java程序员源码进修指南我粉了
查看>>
阿里P8大神教你十分钟构建好SpringBoot + SSM框架 成功晋升
查看>>
Linux运维-搭建高可用Redis缓存
查看>>
膜拜!阿里内部都在强推的K8S(kubernetes)学习指南,不能再详细了
查看>>
Java集合:TreeSet、TreeMap、HashSet、HashMap、HashTable、ArrayList、LinkedList、Vector集合的全部比较
查看>>
Linux 常用命令
查看>>
递归及应用
查看>>
Android之Handler机制篇
查看>>