I am having the same issue. After settings scrollEdgeAppearance to standardAppearance to get an opaque tabBar, UITabBarItem.appearance().setTitleTextAttributes([.foregroundColor: UIColor.red], for: .selected) doesn't do anything. titleTextAttributes returns nil and the text color defaults to systemBlue.