我有一个UIViewController,其底部有标签栏控制器。当用户单击按钮时,我隐藏了标签栏。标签栏已被隐藏,但底部有空白。 ViewController框架没有改变。如何处理呢?如果Tabor控制器被隐藏,则viewController的高度应增加。
func apply(_ effect: ActivityFeedEffect) {
switch effect {
case .feedTypeChange(mode: let mode):
self.parent?.tabBarController?.tabBar.isHidden = mode == .hidden
}
}
答案 0 :(得分:0)
这是UITabBarController上的扩展,可以使用。
这基本上是更新视图的框架。 您可以根据用例添加动画和其他帧处理(如果需要)。但这可以引导您朝这个方向前进。
extension UITabBarController {
func hideTabBar(isHidden:Bool) {
if (isTabBarAlreadyHidden() == isHidden) { return }
let frame = self.tabBar.frame
let height = frame.size.height
let offsetY = (isHidden ? -height : height)
self.tabBar.frame.offsetBy(dx:0, dy:offsetY)
self.view.frame = CGRect(x:0,y:0,width: self.view.frame.width, height: self.view.frame.height + offsetY)
self.view.setNeedsDisplay()
self.view.layoutIfNeeded()
}
func isTabBarAlreadyHidden() ->Bool {
return self.tabBar.frame.origin.y < UIScreen.main.bounds.height
}
}
答案 1 :(得分:0)