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

将UITabBarController设为UISplitViewController主视图出现视图被裁剪问题

问题根本原因

该问题是UISplitViewController默认未正确处理内嵌子控制器的底部安全区偏移,导致内嵌的UITabBar绘制区域没有适配系统安全边距,最终出现tab bar item被底部区域裁剪的问题。

解决方案

方案1:纯Storyboard配置(无需编写代码)

  • 选中项目中的UISplitViewController,在右侧属性检查器的Presentation分类下,勾选Underlay Bottom Bars选项
  • 再选中作为主视图的UITabBarController,在右侧属性检查器的View Controller分类下,确认Extend Edges分组里的Under Bottom Bars为勾选状态
  • 清理Xcode缓存后重新运行即可解决大部分场景下的裁剪问题

方案2:代码适配(方案1无效时使用)

给UITabBarController添加适配代码,在其viewDidLoad生命周期方法中加入以下代码:

// Swift 版本
edgesForExtendedLayout = .all
extendedLayoutIncludesOpaqueBars = true
// Objective-C 版本
self.edgesForExtendedLayout = UIRectEdgeAll;
self.extendedLayoutIncludesOpaqueBars = YES;

额外排查项

  • 检查是否自定义过UITabBar的高度,自定义高度未适配安全区也会触发该问题
  • 清理Xcode的DerivedData缓存后再运行,避免旧的Storyboard编译缓存导致配置不生效

问题关联截图

storyboard配置示意
运行结果示意


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:15:07