Corona SDK onRowTouch gotoScene

时间:2014-09-05 02:19:01

标签: lua corona

我无法用作曲家或故事板改变场景。当我在tableview中触摸一行时,我正在尝试更改场景。我可以使用tableview将场景从主文件更改为文件。虽然桌面触摸不起作用。

我的一些代码如下:

    local widget = require( "widget" )
    local storyboard = require( "storyboard" )
    local composer = require( "composer" )
    local scene = composer.newScene()


function RowTouch( event )
    composer.gotoScene( "thehike" )
end



 myTable = widget.newTableView
    {
        width = display.contentWidth, 
        height = display.contentHeight,
        backgroundColor = { .47, .66, .53 },
        topPadding = 0,
        hideBackground = false,
        onRowRender = onRowRender,
        onRowTouch = RowTouch,
        noLines = true,
    }



    for i=1, #hike do
        myTable:insertRow{
        rowHeight = 220,
        isCategory = false,
        lineColor = { .47, .66, .53 }
        }
    end
end

function scene:show( event )
    local sceneGroup = self.view
    local phase = event.phase

    if phase == "will" then
        -- Called when the scene is still off screen and is about to move on screen
    elseif phase == "did" then
        -- Called when the scene is now on screen
        -- 
        -- INSERT code here to make the scene come alive
        -- e.g. start timers, begin animation, play audio, etc.
    end 
end

function scene:hide( event )
    local sceneGroup = self.view
    local phase = event.phase

    if event.phase == "will" then
        -- Called when the scene is on screen and is about to move off screen
        --
        -- INSERT code here to pause the scene
        -- e.g. stop timers, stop animation, unload sounds, etc.)
    elseif phase == "did" then
        -- Called when the scene is now off screen
    end
end

function scene:destroy( event )
    local sceneGroup = self.view

    -- Called prior to the removal of scene's "view" (sceneGroup)
    -- 
    -- INSERT code here to cleanup the scene
    -- e.g. remove display objects, remove touch listeners, save state, etc.
end

---------------------------------------------------------------------------------

-- Listener setup
scene:addEventListener( "create", scene )
scene:addEventListener( "show", scene )
scene:addEventListener( "hide", scene )
scene:addEventListener( "destroy", scene )

-----------------------------------------------------------------------------------------

return scene

1 个答案:

答案 0 :(得分:1)

由于几个原因,您的代码无效。第34行你有一个悬空end而你没有定义加息。您可能需要一个较小的rowHeight来显示视图中的行:

 local myTable = widget.newTableView
    {
        left = 0,
        top = 0,
        height = 330,
        width = 300
    }

 myTable:insertRow(
        {
            isCategory = false,
            rowHeight = 40,
            rowColor = rowColor,
            lineColor = {.47, .66, .53}
        }
    )

此外,文档相当不错[1]。

[1] http://docs.coronalabs.com/api/library/widget/newTableView.html