Just sharing my experience: I have something like 50 rows and 4 touch listeners per row. Performance is fine for that many rows at least.
I assume my listeners are cleaned up automatically, I have not noticed any leaks at least. But you got me a bit worried
IMHO its easier just to add a listener on an object instead of checking the location of the objects on touch. But in any case you can probably use a tableViewListener, I’m using that to detect sliding:
[lua]local function tableViewListener(event)
local phase = event.phase
local t = event.target
local rowNumber = t.index
print(event.x, event.y, phase, rowNumber)
end
local tableView = widget.newTableView {
etc…
listener = tableViewListener,
}[/lua]