UITabBarItem icon not colored correctly for iOS 13 when a bar tint color is specified in Interface Builder in Xcode 11, beta 2

后端 未结 6 1995
闹比i
闹比i 2020-12-11 15:47

I have a problem with the color of my UITabBarItems when I run on iOS 13 simulators, using Xcode 11, beta 2. I have made a sample project from scratch, and everything works

6条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-11 16:18

    There is a new appearance API in iOS 13. To color tabbar item's icon and text correctly using Xcode 11.0 you can use it like this:

        if #available(iOS 13, *) {
            let appearance = UITabBarAppearance()
    
            appearance.backgroundColor = .white
            appearance.shadowImage = UIImage()
            appearance.shadowColor = .white
    
            appearance.stackedLayoutAppearance.normal.iconColor = .black
            appearance.stackedLayoutAppearance.normal.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.black]
            appearance.stackedLayoutAppearance.normal.badgeBackgroundColor = .blue
    
            appearance.stackedLayoutAppearance.selected.iconColor = .red
            appearance.stackedLayoutAppearance.selected.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.red]
    
            self.tabBar.standardAppearance = appearance
    
        } 
    

提交回复
热议问题