Posts

Post not yet marked as solved
0 Replies
1k Views
I'm facing trouble switching colours when change mode in iOS 13.The problem is when you see the app in "recent apps view" (basically when you suspend your app). UIColors will change but cgColor will not change.It will change effectively when you open the app (when your app is in foreground).I'm using "traitCollectionDidChange" method as mentioned in following apple's document. https://developer.apple.com/documentation/xcode/supporting_dark_mode_in_your_interfacePlease have a look at Video to understand more clearlyhttps://www.youtube.com/watch?v=C-pcVuPMQ9U&feature=youtu.beclass ViewController: UIViewController { @IBOutlet weak var viewColor: UIView! let layerColor = CALayer() override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. setLayer() setColors() } override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { super.traitCollectionDidChange(previousTraitCollection) if traitCollection.hasDifferentColorAppearance(comparedTo: previousTraitCollection) { setColors() } } func setColors() { layerColor.backgroundColor = UIColor(named: "layerColor")?.cgColor } func setLayer() { layerColor.frame = CGRect(x: 0, y: 0, width: 40, height: 40) viewColor.layer.addSublayer(layerColor) } }
Posted
by Vivek.a.
Last updated
.