UGUI循环滑动列表

项目工程

  1. 关于ScrollView的原理,简单说一下:个人是把content的子节点(一个一个的item组件)循环复用。在mask组件遮罩外的item不显示,所以有和没有没有啥区别,不用白不用2333

UGUI ScrollView优化
2.
由于HorizontalLayoutGroup 等的layout组件会自动排列,所以我们自己一个简单的定义布局方式,主要包含一些padding等的布局必须的属性:
---------------------------------------------------代码,见github
3. 接下来最重要的一步就来了,就是判断ScrollView是否滑动到两端了(当然在这之前要做一些初始化的操作:计算生成item的数量、初始化ite、etc),我的思路是(以水平滑动为例):滑动到末端判断起来就很简单了,直接用scrollView.horizontalScrollbar.value就行了(>=1),但是当我们向前滑动时候,由于我们向下滑动的时候,是把前面的item移动到后面,随之content的sizeDelta属性也改变了,所以当下的第一个item并不在scrollView.horizontalScrollbar.value<=0的位置,所以就不能这样 了,可以通过第一个item的坐标与父节点的关系来确定content是否滑动到顶端了。
代码传送门

相关文章: