我的 iOS 应用程序使用故事板作为 UI,并使用自定义色调作为导航栏的背景颜色。
我已经在 Xcode 13 beta 5 上测试了我的应用程序,导航栏为“白色”,并且导航栏上的文本不可见。
在https://developer.apple.com/forums/thread/682420的苹果开发者论坛中,它指出“在 iOS 15 中,UIKit 已将scrollEdgeAppearance(默认情况下会生成透明背景)的使用扩展到所有导航栏”。要恢复旧的外观,您必须采用新的 UINavigationBar 外观 API
我将以下代码(来自上面的链接)添加到应用程序委托“application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions”:
if #available(iOS 13, *) {
let navigationController = UINavigationController(navigationBarClass: nil, toolbarClass: nil)
let navigationBar = navigationController.navigationBar
let appearance = UINavigationBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.backgroundColor = UIColor(red: 0.0/255.0, green: 125/255.0, blue: 0.0/255.0, alpha: 1.0)
navigationBar.standardAppearance = appearance;
navigationBar.scrollEdgeAppearance = navigationBar.standardAppearance
navigationBar.isTranslucent = false
}
Run Code Online (Sandbox Code Playgroud)
这并不能解决问题。我仍然在故事板编辑器中为导航栏设置了自定义色调。我是否需要删除自定义色调,或者我是否错误地实现了外观 API?
我试图在Tab Bar的背景中获得所需的颜色,但是我遇到了问题.这些是我尝试的东西: -
从故事板中更改选项卡栏对象的背景颜色.渲染的颜色总是比所需的颜色浅.
使用viewDidLoad()方法内部的以下代码以编程方式更改选项卡栏的颜色
self.tabBar.translucent = false
self.tabBar.backgroundColor = UIColor(hexString: "323B61")
Run Code Online (Sandbox Code Playgroud)
它不会改变颜色.相反,渲染的颜色是白色.
如何获得Tab Bar所需的颜色?
在 Xcode 10 中,unselectedItemTintColor 属性正常工作,但在 Xcode 11 和 ios 13 UITabbar 后,unselectedItemTintColor 属性不起作用。
override func viewDidLoad() {
super.viewDidLoad()
myTabbar.unselectedItemTintColor = .red
}
Run Code Online (Sandbox Code Playgroud)