Corona SDK:TableView索引未更新

时间:2016-09-06 15:15:44

标签: indexing lua tableview corona

我对Corona SDK和tableview有疑问,但请允许我先显示代码:

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 =="点击",我将editItemNum分配给event.target.index。之后我删除了一个被点击的行。这是第一次很好用。我使用这行代码来实现btw:

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

因此删除功能知道要删除的内容,因为" editItemNum"获取行索引的值。 但是一旦删除了行,行的索引号就不会适应了。例如,我的表中有3个对象:1,2,3。现在我删除了中间的那个,所以我应该得到:1,2。但是当我触摸第二行时,索引仍然是3.所以在视觉上看起来像是:1,3。 这在我眼里是没有意义的,我真的没有看到我的代码有什么问题。我确实在Corona SDK论坛上发现了一个关于此问题的错误报告的帖子,但那是2年前已经解决的...... 有帮助吗? :)

亲切的问候, BRAM

0 个答案:

没有答案