iPadOS 18顶部悬浮TabBar如何通过代码实现隐藏?
iPadOS 18 下隐藏顶部TabBar的可行方案
强制修改TabBar布局
iPadOS 18对顶部TabBar的布局逻辑做了调整,常规的isHidden、alpha等属性修改会被系统覆盖。可以直接修改TabBar的frame为空白区域,再强制刷新布局:tabBarController.tabBar.frame = CGRect.zero tabBarController.tabBar.setNeedsLayout() tabBarController.tabBar.layoutIfNeeded()隐藏TabBar同时调整子控制器布局约束
系统可能因为子控制器的布局依赖TabBar的存在,导致隐藏操作失效。设置tabBar.isHidden = true后,手动调整子控制器的view约束,让其填满整个屏幕:tabBarController.tabBar.isHidden = true guard let navVC = tabBarController.selectedViewController as? UINavigationController else { return } navVC.viewControllers.forEach { vc in vc.view.translatesAutoresizingMaskIntoConstraints = false NSLayoutConstraint.activate([ vc.view.topAnchor.constraint(equalTo: tabBarController.view.topAnchor), vc.view.leadingAnchor.constraint(equalTo: tabBarController.view.leadingAnchor), vc.view.trailingAnchor.constraint(equalTo: tabBarController.view.trailingAnchor), vc.view.bottomAnchor.constraint(equalTo: tabBarController.view.bottomAnchor) ]) }私有API临时方案(仅测试用)
如果你只是做内部调试或测试,可尝试调用私有属性强制隐藏,但此方法无法通过App Store审核:tabBarController.setValue(true, forKey: "_hidesTabBar")
内容的提问来源于stack exchange,提问作者iroh
相关产品推荐
相关产品推荐

