我有多个视图创建使用循环实际上是一个按钮和textview,你如何使用id删除其中一个?
for i=1,#displaymovenames do
moveButton = widget.newButton {
default = "closeBox.png",
over = "openBox.png",
width = 50,
height = 50,
onRelease = startMove,
id = moveID
}
moveButton.x = 50; moveButton.y = boxy
local deletemove = widget.newButton{
default = "remove.png",
over = "removeOver.png",
width = 30,
height = 30,
id = moveID,
alpha = 0,
onRelease = deleteSelectedItem
}
deletemove.x = _W + 20; deletemove.y = deletey
t = display.newText(displaymovenames[i], 85, texty, native.systemFont , 13)
t:setTextColor( 0, 0, 0)
t.id = moveID
boxy = boxy + 65
texty = texty + 65
deletey = deletey + 65
moveID = moveID + 1
moveitemscroll:insert ( moveButton )
moveitemscroll:insert ( t )
deletemoveGroup:insert ( deletemove )
end
基本上这个代码的作用是当按下deletemove按钮时moveButton
,deletemove
和t
被删除这是负责删除的函数:
deleteSelectedItem = function ( event )
event.target:removeSelf()
end
正如您所看到的,我只能删除正在按下的视图如何处理正在按下的其他视图?我怎么能删除它们?我可以使用id吗?如果是的话怎么样?
我想做的就是这个。请将以下项目视为视图。
------ ------------- -------
|image1| |anotherimage1| |button1|
------ ------------- -------
------ ------------- -------
|image2| |anotherimage2| |button2|
------ ------------- -------
------ ------------- -------
|image3| |anotherimage3| |button3|
------ ------------- -------
------ ------------- -------
|image4| |anotherimage4| |button4|
------ ------------- -------
当button1
被按下button1, image1 and anotherimage1
时,会从视图中删除,依此类推。
如果我只是将它们放在一个组中,问题在于按钮已经分配给不同的组,我可以完成此操作。还有其他方法可以解决这个问题吗?
答案 0 :(得分:2)
我不是UI库的粉丝,我可能会使用表来存储按钮,但我认为你可以这样做:
在for循环中:
deletemove.moveButton = moveButton
deletemove.t = t
功能:
deleteSelectedItem = function ( event )
event.target.moveButton:removeSelf()
event.target.t:removeSelf()
event.target:removeSelf()
-- remove listeners and nil the objects to avoid memory leaks.
end
希望这有效