如何修改UITabBar背景色?不同Xcode版本下的实现疑问
UITabBar背景色设置方法&版本差异说明
一、两种实现方法,选一个就行
1. 代码实现(Swift)
在你的UITabBarController的viewDidLoad里加这段代码:
override func viewDidLoad() { super.viewDidLoad() // 直接设置浅灰色,这里用系统预设的SystemGray5,也可以自定义RGB值 tabBar.backgroundColor = UIColor.systemGray5 // 如果设置颜色后仍和页面背景融合,关闭半透明属性 tabBar.isTranslucent = false }
2. 可视化界面设置(Storyboard/XIB)
- 打开包含UITabBar的Storyboard,选中目标UITabBar
- 在右侧属性检查器中找到Background选项,直接选择浅灰色(比如
System Gray 5) - 若视觉上仍和页面背景无区分,找到Translucent复选框,取消勾选
二、为啥旧教程和你现在的效果不一样?
旧版Xcode对应的iOS版本中,UITabBar默认带有系统预设的背景色与半透明效果;但iOS 13及以后的版本(对应新版Xcode),UITabBar默认采用与页面背景融合的样式,所以会出现你遇到的「背景色和页面一致」的情况。
三、检查是否遗漏的步骤
- 确认
isTranslucent属性状态:该属性为true时,即使设置了背景色,半透明效果也会让TabBar和页面背景视觉上融合 - 排查全局样式设置:如果用
UITabBar.appearance()做过全局TabBar样式修改,会覆盖当前TabBar的单独设置 - 检查自定义TabBar子类:若使用了自定义TabBar子类,确认子类中有没有重写背景色相关逻辑,避免覆盖你设置的颜色
内容的提问来源于stack exchange,提问作者Bravo
相关产品推荐
相关产品推荐

