我对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