如何在自定义视图中添加MDCTabBar?

时间:2017-11-10 14:07:27

标签: ios material-design material-components material-components-ios

我在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是我的自定义视图,它正好在导航栏下方。请帮忙解决这个问题。

提前致谢!

3 个答案:

答案 0 :(得分:3)

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

    class SelectTeamViewController: MDCTabBarViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

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

然后它应该是可见的。 您甚至可以在故事板中拖动UIView并在Identity Inspector中选择MDCTabBar类

答案 1 :(得分:1)

$node = entity_load('node', array(13), array(), false);
$paragraph = Paragraph::load($node->nid);
$node->custom_field = $paragraph->field_name->value;

此处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) 是我的自定义视图,它正好位于NavigationBar之下。

答案 2 :(得分:1)

快捷键4:

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

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

    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)
    

    }