我正在尝试将暗模式支持集成到我的应用中。但是,当为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
答案 0 :(得分: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
}