【发布时间】: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 已发布正确答案。当我注意到他已经提供了相同的答案时,我正在写下相同的答案。
标签: ios swift constraints uitabbarcontroller uitabbar