如何向我的 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 添加约束?的主要内容,如果未能解决你的问题,请参考以下文章