【问题标题】:UIBarButtonItem not change image automatically when switching dark mode/light modeUIBarButtonItem 在切换暗模式/亮模式时不会自动更改图像
【发布时间】:2020-07-07 19:03:33
【问题描述】:

我正在尝试将暗模式支持集成到我的应用中。但是在为 UIBarButtonItem 设置图像图标时,它似乎只在第一次显示 UIBarButtonItem 时有效,当我在暗模式/亮模式之间切换时它不会改变。

当将该图像与其他 UIButton 一起使用时,它可以正常工作。 所以我想知道我是否遗漏了什么?

P/s:我必须使用这个技巧来更新图像:

    let item: UIBarButtonItem = UIBarButtonItem()  
    let button: UIButton = UIButton(frame: CGRect(x: 0, y: 0, width: 26, height: 19))  
    button.setImage(UIImage(named: "hamburger"), for: .normal)  
    button.addTarget(self, action: action, for: .touchUpInside)  
    item.customView = button  

【问题讨论】:

    标签: ios13 ios-darkmode


    【解决方案1】:

    似乎是 iOS 中的一个错误,但解决此问题的一种方法是使用 traitCollection 委托方法手动设置正确的图像。

    override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
        super.traitCollectionDidChange(previousTraitCollection)
        
        let imageAsset = UIImage(named: "YOUR_IMAGE_NAME")?.imageAsset
        let resolvedImage = imageAsset?.image(with: traitCollection)
        
        self.YOUR_BUTTON.image = resolvedImage
    }
    

    【讨论】:

      猜你喜欢
      • 2020-09-03
      • 2019-11-19
      • 2021-12-30
      • 1970-01-01
      • 2021-03-05
      • 2020-10-20
      • 1970-01-01
      • 2020-07-07
      • 2020-01-17
      相关资源
      最近更新 更多