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

Posted

技术标签:

【中文标题】从暗模式快速切换到亮模式时如何修复搜索栏【英文标题】:How to fix searchbar when switch from dark mode to light mode swift 【发布时间】:2020-05-07 13:45:22 【问题描述】:

您好,我的搜索栏有问题。 我使用此功能在深色和浅色模式之间切换我的应用

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

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

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

以上是关于从暗模式快速切换到亮模式时如何修复搜索栏的主要内容,如果未能解决你的问题,请参考以下文章

如何快速修复横向模式下的约束?

Vim:如何更改搜索命中和快速修复选择的突出显示颜色

切换到视频捕获模式后如何修复 UIImagePickerController 崩溃?

在修复画笔工具的工具选择栏中有很多选项,下列说法错误的是()。

聚焦时如何修复 UISearchController 搜索栏调整大小?

IE9 文档模式切换修复了 SharePoint CSS 问题?