cocos listview 删除的3种方案

1. 每次只删那一个下标 removeItem


2. 

forceDoLayoutfunction UIGuildScience:delSkillItem(_idx)	--添加技能item
	print("传进来的 点击的item idx " .. _idx)
	local tbList = self.m_ListView_Science:getItems()
	--dump(tbList, "tbList")
	local isBeginDel = false
	local tempDelTable = {}		--记录下需要删除的项的对象
	for k, v in ipairs(tbList) do
		print("111*****************************************")
		print("k = " .. k)
		print("v.titleIdx " .. (v.titleIdx or "nil"))
		print("222*****************************************")

		if v.titleIdx and v.titleIdx > _idx then	--结束
			print("结束 idx " .. k)
			isBeginDel = false
			break
		end

		if isBeginDel == true then
			print("要删的k " .. k)
			table.insert(tempDelTable, tbList[k])	--把要删的对象存起来 然后遍历用removeChild删 用removeItem删会出错(索引会跳)
		end

		if v.titleIdx and v.titleIdx == _idx then		--开始
			print("开始 idx " .. k)
			isBeginDel = true
		end

	end

	for _i, v in ipairs(tempDelTable) do
		self.m_ListView_Science:removeChild(tempDelTable[_i])
	end

--	self.m_ListView_Science:refreshView()--或者 forceDoLayout

end

第3

function UIGuildScience:delSkillItem(_idx)	--添加技能item
	print("传进来的 点击的item idx " .. _idx)
	local tbList = self.m_ListView_Science:getItems()
	--dump(tbList, "tbList")
	local isBeginDel = false
	local tempDelTable = {}		--记录下需要删除的项的对象
	local tbReverse = {}
	for k, v in ipairs(tbList) do
		print("111*****************************************")
		print("k = " .. k)
		print("v.titleIdx " .. (v.titleIdx or "nil"))
		print("222*****************************************")

		if v.titleIdx and v.titleIdx > _idx then	--结束
			print("结束 idx " .. k)
			isBeginDel = false
			break
		end

		if isBeginDel == true then
			print("要删的k " .. k)
			table.insert(tbReverse, k)	--把要删的对象存起来 然后遍历用removeChild删 用removeItem删会出错(索引会跳)
		end

		if v.titleIdx and v.titleIdx == _idx then		--开始
			print("开始 idx " .. k)
			isBeginDel = true
		end

	end

	--dump(tbReverse,"之前")

	table.sort(tbReverse,function(a, b) return a > b end)

	--dump(tbReverse,"之后")

	for _i, v in ipairs(tbReverse) do
		self.m_ListView_Science:removeItem(tbReverse[_i]-1)
	end

--	for _i, v in ipairs(tempDelTable) do
--		self.m_ListView_Science:removeChild(tempDelTable[_i])
--	end

	self.m_ListView_Science:forceDoLayout()
end

倒序删

你可能感兴趣的:(lua)