Indexing Corona SDK:TableView索引未更新
我对Corona SDK和tableview有问题,但请允许我先显示代码:Indexing Corona SDK:TableView索引未更新,indexing,lua,tableview,coronasdk,Indexing,Lua,Tableview,Coronasdk,我对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.tar
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} )
因此delete函数知道要删除什么,因为“editItemNum”获取行索引的值。 但是,一旦我删除了该行,该行的索引号就不再适应了。例如,我的表中有3个对象:1,2,3。现在我删除中间的一个,所以我应该得到:1,2。但是当我触摸第二行时,索引仍然是3。从视觉上看,这看起来像:1,3。 这在我看来毫无意义,我真的没有看到我的代码有任何问题。我确实在Corona SDK论坛上找到了一篇关于这个问题的错误报告,但那是两年前的事了,已经解决了。。。 有什么帮助吗?:) 亲切问候,,
Bram但您的代码包含以下行:
tableView:deleteRows({event.target.index},{slideLeftTransitionTime=450})
而不是您声称使用的tableView:deleteRows({editItemNum},{slideLeftTransitionTime=400})
。我很困惑你在困惑什么?不管怎样,这是一个确定的错误!因此delete函数知道要删除什么,因为“editItemNum”获取行索引的值。至少不在提供的代码中。如果它是一个bug,并且已经被解决,请确保您的sdk是最新的。Woops,您是正确的。应将其更改为editItemNum。但是,当您更改行的结构(移动、删除…)时,event.target.id仍不会更新。这是一个bug,还没有修复。@BramVanbilsen看起来问题还在那里。你找到办法了吗?(很抱歉更新了这么旧的主题…)但您的代码包含以下行:tableView:deleteRows({event.target.index},{slideLeftTransitionTime=450})
而不是您声称使用的tableView:deleteRows({editItemNum},{slideLeftTransitionTime=400})
。我很困惑你在困惑什么?不管怎样,这是一个确定的错误!因此delete函数知道要删除什么,因为“editItemNum”获取行索引的值。至少不在提供的代码中。如果它是一个bug,并且已经被解决,请确保您的sdk是最新的。Woops,您是正确的。应将其更改为editItemNum。但是,当您更改行的结构(移动、删除…)时,event.target.id仍不会更新。这是一个bug,还没有修复。@BramVanbilsen看起来问题还在那里。你找到办法了吗?(很抱歉更新了这么旧的主题…)