2014-02-28 118 views
1

这里我用的代码显示表格行中的刻度标记,在每一行上单击刻度标记显示和其他单击它的隐藏。我添加了一个按钮来选择使所有刻度可见(Select所有),它不工作。点击选择所有行

local function onRowRender(event) 
local phase = event.phase 
local row = event.row 
chktick= display.newImage('images/kitchen/checktick.png',10,10); 
    if(deviceName == "iPhone" or deviceName == "iPad") then 
    chktick.x=303; 
    chktick.isVisible = false; 
    else 
    chktick.x=303; 
    chktick.isVisible = false; 
    end 
chktick.y=row.contentHeight * 0.5; 
row:insert(chktick); 
row:addEventListener("tap",onRowTouch); 
return true; 
end 

在rowtouch方法

local function onRowTouch(event) 
local row = event.target; 
local _chktick = event.target[6]; 
print("Comes here when touch"..row.index); 
    if(flagvalue==1)then 
    _chktick.isVisible = true; 
    flagvalue=0; 
else 
    _chktick.isVisible = false; 
    flagvalue=1; 
end 
return true; 
end 

选择所有方法

local function SelecetAllEventListener(event) 
    flagvalue=1; 
    currentScene.reloadScene(); 
return true; 
end 

Rowrender调用代码

function scene:enterScene(event) 
MenuID = event.params.currentMenuID; 
local group = self.view 
    tableView = widget.newTableView 
    { 
     top = 85, 
     left = 0, 
     width = 320, 
     height = 380, 
     maskFile = "billmask.png", 
     hideBackground = true, 
     onRowRender = onRowRender, 
     listener = tableViewListener, 
    } 
    end 
    group:insert(tableView) 
end 

请帮助我如何使人们看到全部打勾showable使用SelecetAllEventListener

+0

你是否试图让按钮导致每一行被检查标记?是你的排组中的第6个项目复选标记单元格(我认为你的意思是复选标记不是勾号标记)? onRowRender被调用的地方,你能显示代码吗?还有按钮代码。 – Schollii

+0

@Solollii是的,在单击按钮上点击每行被检查标记。我已添加代码请检查 – Fazil

回答

1

问题可能出在您的“全选”处理程序(SelecetAllEventListener)中,您将标志设置为1,然后重新加载场景。这将导致IIUC,onRowRender再次被调用,但它不会导致onRowTouch被再次调用(因为没有连续触摸)。您需要做的是在SelecetAllEventListener中循环遍历所有行并更改复选标记的可见性。您的代码犯规”节目,你让你的行,但我会在一个变量假设:

local tableRows = {} 
local toggle = true 

local function somewhereInYourCode() 
    ... 
    newRow = ... 
    yourTable:inserRow(newRow) -- will cause onRowRender to get called 
    table.insert(tableRows, newRow) 
    ... 
end 

local function SelecetAllEventListener(event) 
    for i,row in ipairs(tableRows) do 
     row[6].isVisible = toggle 
    end 
    toggle = not toggle -- for next time 
    return true 
end 

您的代码并不显示您插入行,所以我把它放在somewhereInYourCode(),但你的想法。

相关问题