当前位置: 首页 > 面试题库 >

在iOS8中使用Swift轻触时如何隐藏/显示tabBar

汝跃
2023-03-14
问题内容

我试图hidesBarsOnTap用选项卡栏模仿UINavigationController的新功能。我已经看到了很多答案,它们要么指向hidesBottomBarWhenPushed在viewController上设置,仅将其完全隐藏而不是在点击时隐藏。

 @IBAction func tapped(sender: AnyObject) {

    // what goes here to show/hide the tabBar ???


}

提前致谢

编辑:根据下面我的建议

self.tabBarController?.tabBar.hidden = true

实际上确实隐藏了tabBar(在点击时切换true / false),但是没有动画。我将作为一个单独的问题提出。


问题答案:

经过大量的探索并尝试了各种方法来使用Swift优雅地隐藏/显示UITabBar,我得以danh采纳了这个出色的解决方案并将其转换为Swift:

func setTabBarVisible(visible: Bool, animated: Bool) {

    //* This cannot be called before viewDidLayoutSubviews(), because the frame is not set before this time

    // bail if the current state matches the desired state
    if (tabBarIsVisible() == visible) { return }

    // get a frame calculation ready
    let frame = self.tabBarController?.tabBar.frame
    let height = frame?.size.height
    let offsetY = (visible ? -height! : height)

    // zero duration means no animation
    let duration: TimeInterval = (animated ? 0.3 : 0.0)

    //  animate the tabBar
    if frame != nil {
        UIView.animate(withDuration: duration) {
            self.tabBarController?.tabBar.frame = frame!.offsetBy(dx: 0, dy: offsetY!)
            return
        }
    }
}

func tabBarIsVisible() -> Bool {
    return (self.tabBarController?.tabBar.frame.origin.y)! < self.view.frame.maxY
}

// Call the function from tap gesture recognizer added to your view (or button)

@IBAction func tapped(_ sender: Any?) {
    setTabBarVisible(visible: !tabBarIsVisible(), animated: true)
}


 类似资料:
  • 问题内容: 如何使用JSF显示/隐藏组件?我目前正尝试在javascript的帮助下做同样的事情,但没有成功。我不能使用任何第三方库。 谢谢| 阿比 问题答案: 通常,您需要通过其clientId获得该控件的句柄。本示例使用带有请求范围绑定的JSF2 Facelets视图来获取另一个控件的句柄: 确切的操作方式取决于您正在使用的JSF版本。有关较早的JSF版本,请参见此博客文章:JSF:使用组件标

  • 问题内容: 在我的脚本中有三个div。我想在第一行悬停时显示div ,而在第二行悬停时显示。否则,我想默认显示div 。 但它永远不会显示带有的div 。 问题答案: 你需要 原始CSS中的问题是in css选择器启动了一个全新的选择器。它没有结合..所以意味着和。您将其设置为始终对所有元素都隐藏。

  • 本文向大家介绍如何使用animate(),隐藏和显示元素?,包括了如何使用animate(),隐藏和显示元素?的使用技巧和注意事项,需要的朋友参考一下 使用和方法来隐藏和显示元素。 示例 您可以尝试运行以下代码,以了解如何使用方法来隐藏和显示元素:

  • 问题内容: 对于我正在做的网站,我想加载一个div,然后隐藏另一个,然后有两个按钮可以使用JavaScript在div之间切换视图。 这是我当前的代码 替换div2的第二个功能不起作用,但第一个功能起作用。 问题答案: 如何显示或隐藏元素: 为了显示或隐藏元素,请操纵元素的style属性。在大多数情况下,您可能只想更改元素的属性: 或者,如果您仍然希望元素占用空间(例如,如果您要隐藏表格单元格),

  • 我尝试了下面的代码在移动和桌面上以不同的方式显示。但是两个句子同时显示。

  • 对于我正在做的一个网站,我想加载一个div并隐藏另一个,然后有两个按钮可以使用JavaScript在div之间切换视图。 这是我当前的代码 null null 取代div2的第二个函数不起作用,但第一个是。