1、定义:通过显示区域,查看并操作着一排子节点跟着父节点(滑动板)移动;
使用频率大、复杂度较高、需要封装简洁、统一的接口;
最佳学习办法:看源码、搞明白它的实现原理;
2、以NGUI的UIScrollView来讲解:1)3个东西:滑动板、板上物体Item、布局管理器;
2)滑动板与板上物体关系:父子节点关系,版上物体以精确的localPosition布局着,
板上物体跟着滑动板移动(相对位置不变);
3)滑动板=UIPanel+UIScrollView;
UIPanel(Clipping=Soft Clip)用于截出显示区域,通过触摸滑动列表时,
该组件的世界坐标位置会保持不变,即不随滑动板的移动而移动;
UIScrollView:与滑动板共同进退,它们载着板上物体,跟着触摸而移动;
会智能检测板上物体情况,调整自己的滑动范围;
4)触摸响应=BoxCollider+UIDragScrollView;滑动板的某些子节点必须实现它,通常是Item条;
UIDragScrollView会向上找并以第一个找到的UIScrollView为操作对象,
也可以UIDragScrollView.scrollView=***明确赋值;
5)布局管理器UIGrid
方便Item的布局,但它不是必须的;3、关键功能
没有现成解决方案,但很重要、必须实现的功能;
1)掌握“板上物体的布局策略”,因为经常要对Item实现特殊效果;2)Item分帧创建、Item逐条显示动画:
3)Item数量限制策略:
原因:过多的Item会导致卡顿、操作不流畅;
只有n个item(能覆盖显示区域),然后滑动过程中动态刷新item内容;
4)动态增减:包括内容列表、Item列表:
5)Item条内容动态更新:6)Item条点击事件处理:
每个Item上BoxCollider+UIDragScrollView+UIButton;
7)滑动板滑到某个指定位置;