效果图
思路
- 判断最上方和最下方边界,
如果最上方Item不在显示页面了就移动到最下方,如果最下方Item不在显示页面就移动到最上方,边界就用RectTransfrom.GetWorldCorners获取
- 实现了思路1时,只是可以无限滚动效果但是真实情况要和数据结合在一起,我这边是使用一个
Vector2Int _windowEdge
字段,其中x代表当前页面显示的第一个数据索引,y代表当前页面显示的最后索引,可以当做一个数据窗口
,当进行思路1中在向最下方/最上方
移动时这个窗口会向下/向上移动
。 - 因为是利用数据模拟,并且ScorllRect设置的Unrestricted,可以随意滚动,如果不加限制将会出现空白效果。这里直接控制ScorllRect中Content大小,来将ScrollBar的值控制在0~1。
具体代码实现的可以看上面的项目地址、剩下具体代码实现思路有空再写