Corona SDK:TableView指数未更新

我使用 Corona SDK 和表视图遇到了问题,但让我先展示代码:

function functions.onRowTouch( event )
  print("ONROWTOUCH EXECUTING")

  if event.phase == "tap" or event.phase == "press" then
    print("EVENT.TARGET.INDEX: " .. event.target.index)
    editItemNum = event.target.index
    print("editnum: " .. editItemNum)
    print("ITEM tapped")
    if saveData.names[event.target.index] ~= nil then
        function functions.pressRow(event)
            print("ROW NUM: " .. event.target.index)
            print("EDITNUM = " .. editItemNum)
            functions.pressItem()
            return true
        end
        event.target:addEventListener("tap", functions.pressRow)
    end
  elseif event.phase == "swipeLeft" then
    print("SWIPING LEFT")
    tableView:deleteRows({event.target.index}, {slideLeftTransitionTime=450})
    table.remove(saveData.names, editItemNum)
    table.remove(saveData.dates, editItemNum)
    table.remove(saveData.amounts, editItemNum)
    loadsave.saveTable(saveData, "payMeBackTable.json")
    print("ROW DELETED")
  end
end

抱歉缩进可能有问题,但 stackoverflow 经常改变它... 但是我的问题是:在 event.phase == "tap" 中,我将 editItemNum 分配给 event.target.index。之后,我删除了一个被点击的行。这对于第一次工作得很好。我使用以下行代码实现了它:

tableView:deleteRows({editItemNum}, {slideLeftTransitionTime=400} )

因此,删除函数知道要删除什么,因为 "editItemNum" 获取行索引的值。 但是一旦我删除了行,行的索引号不会随之更改。例如,我在我的表中有 3 个对象:1,2,3。现在我删除了中间的一个,所以我应该得到:1,2。但是,当我点击第二行时,索引仍然是 3。因此,视觉上它会看起来像:1,3。 在我看来,这根本没有意义,我真的看不出我的代码有什么问题。我在 Corona SDK 论坛上找到了一个帖子,其中包含该问题的错误报告,但是那是两年前的事了,已经解决了... 需要帮助吗?:)

此致 桥璎

点赞