2

我在 iOS 中使用 Material Design 库,我试图在导航栏下方的自定义视图中添加MDCTabBar但它不起作用。代码就像

let tabBar = MDCTabBar(frame: self.mainTabBar.bounds)
    tabBar.items = [
        UITabBarItem(title: "TAB 1", image: nil, tag: 0),
        UITabBarItem(title: "TAB 2", image: nil, tag: 1),
    ]
    tabBar.tintColor = UIColor.white
    tabBar.barTintColor = UIColor.theme
    tabBar.alignment = .justified
    tabBar.itemAppearance = .titles
    tabBar.autoresizingMask = [.flexibleWidth, .flexibleTopMargin]
    tabBar.displaysUppercaseTitles = true
    tabBar.sizeToFit()
    self.mainTabBar.addSubview(tabBar)

mainTabBar是我的自定义视图,它正好在导航栏的下方。请帮助解决这个问题。

提前致谢!

4

3 回答 3

3

您的 ViewController 类必须继承自 MDCTabBarViewController 类,例如:

    class SelectTeamViewController: MDCTabBarViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }
}

然后它应该是可见的。您甚至可以在情节提要中拖动 UIView 并在 Identity Inspector 中选择 MDCTabBar 类

于 2017-11-27T19:39:30.960 回答
2
let tabBar = MDCTabBar(frame: self.mainTabBar.bounds)
tabBar.delegate = self
tabBar.items = [
        UITabBarItem(title: "Tab 1", image: nil, tag: 0),
        UITabBarItem(title: "Tab 2", image: nil, tag: 1),
    ]
tabBar.tintColor = UIColor.white
tabBar.barTintColor = UIColor.theme
tabBar.alignment = .justified
tabBar.itemAppearance = .titles
tabBar.autoresizingMask = [.flexibleWidth, .flexibleTopMargin]
tabBar.displaysUppercaseTitles = true
tabBar.sizeToFit()
self.mainTabBar.addSubview(tabBar)

mainTabBar是我的自定义视图,它正好在 NavigationBar 下方。

于 2017-12-01T08:54:46.697 回答
1

斯威夫特 4:

我没有看到我的 tabBar 有两个原因!

  • 第一个是我没有选择与我的容器(tabBarView)颜色不同的颜色,所以它是白色的 tabBar,白色的 tabBarView 上有白色的文本。
  • 其次是一件棘手的事情,它与以前的其他答案不同。我将我的MDCTabBar 框架设置为等于 view.bounds,然后使用sizeToFit方法将其压缩到容器 tabBarView 的大小。这是唯一让我在屏幕上处于正确位置的东西!欢迎您调整一些属性并在您的代码中使用它!阅读您的评论会很有趣!

    func setTabBar() {
    
    // Set our MDCTabBar frame equal to view.bounds
    let tabBar = MDCTabBar(frame: view.bounds)
    tabBar.delegate = self
    tabBar.items = [
        UITabBarItem(title: NSLocalizedString("FirstTab", comment: ""), image: nil, tag: 0),
        UITabBarItem(title: NSLocalizedString("SecondTab", comment: ""), image: nil, tag: 1)
    ]
    tabBar.itemAppearance = .titles
    tabBar.barTintColor = .yellow
    tabBar.tintColor = .green
    tabBar.setTitleColor(.black, for: .normal)
    tabBar.setTitleColor(.blue, for: .selected)
    tabBar.displaysUppercaseTitles = false
    tabBar.alignment = .justified
    
    // This sizeToFit will squash our MDCTabBar to tabBarView size
    tabBar.sizeToFit()
    // Add MDCTabBar to our tabBarView as a subview
    tabBarView.addSubview(tabBar)
    

    }

于 2018-10-25T14:09:39.467 回答