从暗模式快速切换到亮模式时如何修复搜索栏

时间:2020-05-07 13:45:22

标签: swift uisearchcontroller ios-darkmode

嗨,我的搜索栏有问题。 我使用此功能在黑暗和明亮模式之间切换应用程序

func changeStyle(dark: Bool){
    let window = UIApplication.shared.windows.first { $0.isKeyWindow }
      if dark == true {
          window?.overrideUserInterfaceStyle = .dark 
      }else{
          window?.overrideUserInterfaceStyle = .light
      }
}

一切正常,但只有搜索栏有问题。当我切换到亮模式时,搜索栏仍处于暗模式。见下图 我该如何解决?

App switched to light mode

1 个答案:

答案 0 :(得分:0)

尝试收听更改并使用traitCollectionDidChange手动设置:

override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
    super.traitCollectionDidChange(previousTraitCollection)

    if #available(iOS 13.0, *) {
        if traitCollection.hasDifferentColorAppearance(comparedTo: previousTraitCollection) {
        //Set colours here
    }
}