如何在 tabBar 上显示覆盖屏幕?

main.lua中,我用三个按钮和三个屏幕(screen1,screen2,screen3)创建了一个tabBar。

  1. screen1中,我想显示模态叠加

    local options = {
            effect = "fromBottom",
            time = 400,
            isModal = true,
        }
    
    storyboard.showOverlay( "get", options )
    

    一切正常,但我想在tabBar上显示叠加层(就像xCode中的模态视图一样)。我该如何做?

  2. 在某种情况下,我应该从screen1“goto” screen3

    storyboard.gotoScene(“screen3”)
    

    它行得通,但所选的tabButton仍然是tabButton1(带有screen1

    如何编程选择tabButton?

    这是在main.lua中创建tabBar的代码:

    - 创建标签栏的按钮表
    local tabButtons = {
        {
            width = 32,height = 32,
            defaultFile = “assets / tabIcon.png”,overFile = “assets / tabIcon-down.png”,
            label = translations [“tab1”] [language],
            onPress = function()storyboard.gotoScene(“screen1”);end,
            selected = true
        },
        {
            width = 32,height = 32,
            defaultFile = “assets / tabIcon.png”,overFile = “assets / tabIcon-down.png”,
            label = translations [“tab2”] [language],
            onPress = function()storyboard.gotoScene(“screen2”);end,
        },
        {
            width = 32,height = 32,
            defaultFile = “assets / tabIcon.png”,overFile = “assets / tabIcon-down.png”,
            label = translations [“tab3”] [language],
            onPress = function()storyboard.gotoScene(“screen3”);end,
        }
    }
    - 创建一个选项卡栏并将其放置在屏幕底部
    local tabBar = widget.newTabBar {
        top = display.contentHeight - 50,
        height = 50,
        width = display.contentWidth,
        -  backgroundFile = “assets / tabbar.png”,
        tabSelectedFrameWidth = 1,
        tabSelectedFrameHeight = 49,
        buttons = tabButtons
    }
    storyboard.gotoScene(“screen1”,“crossFade”,200)
    
点赞
用户825481
用户825481

我认为你不能在选项卡栏之上显示任何图片,因为它是一个原生对象。唯一可能可以使其工作的方法是通过将图像和tabBar插入到2个组中。然后使一个display.newGroup()位于另一个组的上方。我甚至不认为那会起作用,但可以尝试一下。

2013-12-12 21:40:17
用户1870706
用户1870706

实际上,在 Corona 中,如果您使用 widget.newTabBar(),那么它们就是 Corona 的显示对象。我认为您遇到的问题是,故事板对象位于不受故事板管理的任何对象下面。

因为您的 tabBar 通常不受故事板管理,它将位于任何故事板场景上方,包括覆盖层。为了使它按照您想要的方式工作,您可能需要创建一个场景(称之为 menu.lua 或 tabbar.lua),在其 createScene 函数中创建 tabBar,并确保将 tabBar 添加到场景的视图中。现在该场景正在由故事板管理,您的覆盖层现在可以覆盖它。

注意Markdown格式不能直接翻译成中文,只是为了方便显示。

2013-12-16 02:45:47