2014-02-28 144 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(),但你的想法。

相關問題