Swift项目中自定义UITabBarItem按钮图片无法显示如何解决?
TabBar Item 不显示自定义图片的解决方法
1. 修改图片渲染模式
系统默认会将TabBarItem的图片以模板模式渲染,自动填充全局tintColor(默认蓝色),仅保留图片轮廓,导致自定义图片颜色/内容无法正常展示,需要手动指定渲染模式为原图模式:
// 修改createListNC方法中的UITabBarItem初始化代码 listVC.tabBarItem = UITabBarItem(title: "", image: UIImage(named: "btn_new")?.withRenderingMode(.alwaysOriginal), tag: 0) // 如需自定义选中状态图标,可额外添加以下代码 listVC.tabBarItem.selectedImage = UIImage(named: "btn_new_selected")?.withRenderingMode(.alwaysOriginal)
2. 给TabBarController赋值视图控制器数组
你定义的setUpTabbarItems()方法并未在viewDidLoad中调用,TabBarController没有拿到你配置好的视图控制器,需要在viewDidLoad中添加赋值代码:
override func viewDidLoad() { super.viewDidLoad() createEventViewController = CreateEventViewController() self.delegate = self self.tabBar.barTintColor = UIColor.customGreen() // 新增以下代码 self.viewControllers = setUpTabbarItems() }
3. 校验Assets中图片尺寸
UITabBar的图标有标准尺寸要求,尺寸不符会导致显示异常:
- @1x 分辨率:25 * 25 px
- @2x 分辨率:50 * 50 px
- @3x 分辨率:75 * 75 px
打开Assets.xcassets中的btn_new资源,确认三个分辨率槽位都放置了对应尺寸的图片。
内容的提问来源于stack exchange,提问作者Yuuu
相关产品推荐
相关产品推荐

