Unity+Slua实现游戏常用UI组件(六)——单(多)元素滚动布局组件

单元素滚动表格组件——LSIScrollView

  • 定义
    单元素滚动表格组件下只有一种元素,支持元素自动布局并在滚动过程中元素复用
  • 组件效果展示
LSIScrollView效果展示

LSIScrollView效果展示

LSIScrollView元素复用

LSIScrollView元素复用

  • 特性
    • 创建满足Mask显示的最小数量的元素,滚动过程中保证元素复用(见上面两张图效果)
    • 要求组件下有且只有一种元素
    • 支持设置元素与元素之间的间隔(gap),设置元素与ScrollRect中Content的偏移值(padding)
    • 滚动到展示内容末尾会有对应事件派发,方便实现数据流的效果(详见LSIScrollViewDemo的第1个例子)
    • 使用者与元素方便进行交互,拓展性良好
  • 元素复用逻辑
    因为组件下有且只有一种元素,结合ScrollRect中Content的偏移值以及Mask的大小,就可以计算出显示元素的下标范围,之后对下标在显示范围之外的元素放入缓存池并隐藏,对下标在显示范围之内的元素,从缓存池获取或者创建,并显示。
  • 项目地址
    git地址 (Demo中的LSIScrollViewDemo)
    Unity版本:5.6.6

多元素滚动表格组件——LMIScrollView

  • 定义
    多元素滚动表格组件支持多种元素,支持元素自动垂直布局并在滚动过程中元素复用
  • 效果展示
LMIScrollView效果展示

LMIScrollView效果

LMIScrollView元素复用

LMIScrollView元素复用

  • 特性
    • 创建满足Mask展示的最小数量的元素,滚动过程中保证元素复用(见上面两张图效果)
    • 支持多种类型的元素(详见LMIScrollViewDemo)
    • 支持设置元素与元素之间的间隔(gap)
    • 使用者与元素方便进行交互,拓展性良好
  • 使用限制与要求
    • 目前只支持垂直方向,单列滚动,不支持设置元素与ScrollRect中Content的偏移值(padding)
    • SetData中dataList的结构为
      {
      {type = itemType, data = data},
      {type = itemType, data = data},
      {type = itemType, data = data},
      }
      其中ItemType为Content下模板对象的下标
  • 复用逻辑
    复用逻辑与树形组件LTree的逻辑类似,就是在SetData之后生成一份每个元素的y轴坐标列表,这样我们通过Content的偏移值以及Mask大小,就可以获取显示的下标范围,根据显示的下标范围,就可以轻易的知道哪些元素要隐藏并缓存,哪些元素要从缓存池获取或者创建,并显示
  • 项目地址
    git地址 (Demo中的LMIScrollViewDemo)
    Unity版本:5.6.6

有了滚动表格组件之后为何还需要这两个组件?

原因我在滚动表格组件有解释,详见Unity+Slua实现游戏常用UI组件(一)
主要原因是单(多)元素滚动表格组件是对滚动表格组件的延伸,在大部分情况下,可以用这两个组件去替代滚动表格组件,使用会更方便,修改的灵活性更强

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值