如何向我的 tabBarController 添加约束?

Posted

技术标签:

【中文标题】如何向我的 tabBarController 添加约束?【英文标题】:How do I add constraints to my tabBarController? 【发布时间】:2020-04-20 12:15:55 【问题描述】:

我添加了一个tabBarController 并将其连接到viewControllers 并赋予tabBarController 自己的class。它可以工作,但我想通过更改constraints 来自定义它,使其不在底部。据我所知,无法在auto layout 中添加constraints,因为它全部变灰。我尝试以编程方式添加它,但没有任何反应。

final class TabBarViewController: UITabBarController 

    @IBOutlet var customTabBar: UITabBar!
    override func viewDidLoad() 
        self.selectedIndex = 2
        let fontAttributes = [NSAttributedString.Key.font: UIFont.systemFont(ofSize: 20.0)]

        UITabBarItem.appearance().setTitleTextAttributes(fontAttributes, for: .normal)

        //This doesn't work
        customTabBar.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true

        //Neither does this
        self.tabBar.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true

        //Or this
        if let tabC = self.tabBarController 
            tabC.tabBar.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true
        
    

那么我该怎么做呢?我希望tabBar 距离底部大约 50p。

【问题讨论】:

那么你的 rootViewController 是什么?标签栏控制器?在那种情况下我不认为你可以改变标签栏框架,你应该使用简单的视图控制器在底部添加标签栏,基本上你自己实现标签栏控制器的功能 我将情节提要的 tabBarController 的类设置为 TabBarController,所以我会说是的。好的,那么只是一个 tabBar 呢?谢谢! 可以移动标签栏,但它很hacky,并且会导致意想不到的副作用。 不要自己重新实现标签栏的功能,@Craz1k0ek 已发布正确答案。当我注意到他已经提供了相同的答案时,我正在写下相同的答案。 【参考方案1】:

您可以创建一个容器视图控制器来容纳您UITabBarController。 然后,当您在容器视图上设置约束时,可以在底部添加“填充”,使其向上。下面是两个解释布局的屏幕截图。

【讨论】:

以上是关于如何向我的 tabBarController 添加约束?的主要内容,如果未能解决你的问题,请参考以下文章

如何向我的 SKSpriteNode 添加爆炸?

如何向我的 JButtons 添加图像功能

如何向我的 openGL 程序添加多个纹理?

如何使用 QSettings 向我的配置文件添加注释?

如何向我的 Java Servlet 的现有 HttpServletRequest 添加参数?

如何向我的 Elasticsearch 集群添加新节点