page_view 管理类(还可以继续优化,目前没时间)
功能:
1.实际内存只创建3个
比如需求是创建100个子页面,实际内存只创建了3个,不循环,向上滑动到100停止,只能向下滑,向下滑动到1,只能向上滑。(1,100只是数学概念,实际pageview索引值从0开始)
2.初始化的时候可以跳到指定页
思路:1.创建100个空的laout占位
2.只更新当前页和上一页下一页的数据,其他的子页面删除
遇到的问题:pageview的事件监听turning检测并不灵敏,考虑用update检测
关于调用:只需要关心调用setPageListData和create 方法
setPageListData可以传带数据的页面和无数据的页面
代码部分
// An highlighted block
UIPageView_L = class("UIPageView_L")
-- page_view
-- 1. 加载 加载3页: 加载上一页和下一页和当前页
-- 2. 删除 滑动的时候删除当前页往前数的前两页 往后数的后两页
-- 例如:当前页是3 需加载2 3 4页 然后删除页面1和5以后的
local BEGIN_NUM = 3 -- 默认开始创建的页数
-- 初始化数据
function UIPageView_L:ctor(data)
self._page_view = data.page_view
self._page_view:setSwallowTouches(false)
self._update_call_back = data.update_call_back
self._begin_num = data.begin_num or BEGIN_NUM
self._panel_size = self._page_view:getContentSize()
self._csb_name_list = data.csb_name_list
self._set_touch = data.set_touch
-- 默认上下滑动
self._page_view:setDirection(ccui.PageViewDirection.VERTICAL)
-- 设置滑动灵敏度
-- self._page_view:setCustomScrollThreshold(20)
self._custom_list = {
}
self._data_list = {
}
end
-- 插入空白panel
function UIPageView_L:addPanel(page_index,data)
local custom_item = ccui