0

ボタンとテキストビューのループを使用して複数のビューを実際に作成していますが、idを使用してそのうちの1つを削除するにはどうすればよいですか?

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、これが削除を担当する関数であるということです。deletemovet

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と、ビューから削除されます。

それらをグループに配置するだけでこれを達成できます。問題は、ボタンがすでに別のグループに割り当てられていることです。これを解決する他の方法はありますか?

4

1 に答える 1

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

これがうまくいくことを願っています

于 2012-12-05T02:36:50.020 に答える