You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS 26 UITabBarController:如何实现全屏TabBar且不显示bottomAccessory?

iOS 16下UITabBar全屏显示且无可见bottomAccessory的解决办法
  • 最稳妥的方式是给UITabBarController设置一个高度为0的透明视图作为bottomAccessory,既触发系统的全屏布局逻辑,又不会产生可见区域:
class CustomTabBarController: UITabBarController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let emptyAccessory = UIView()
        emptyAccessory.backgroundColor = .clear
        emptyAccessory.translatesAutoresizingMaskIntoConstraints = false
        NSLayoutConstraint.activate([
            emptyAccessory.heightAnchor.constraint(equalToConstant: 0)
        ])
        bottomAccessory = emptyAccessory
    }
}
  • 另一种思路是直接修改TabBar的布局边距,但这种方式依赖系统布局逻辑,不如前者稳定:
override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    tabBar.layoutMargins = .zero
    tabBar.invalidateIntrinsicContentSize()
}

第一种方法利用了系统设置bottomAccessory时的布局规则,通过高度为0的视图让TabBar自动延伸至屏幕边缘,同时完全隐藏accessory区域,不会出现透明但占空间的问题。

内容的提问来源于stack exchange,提问作者Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 12:24:51