I'm checking my existing app to work correctly with the new introduced dark mode feature of ios 13.Everything seems to work fine, only the cell background in one of my tableViews is not refreshed according the mode (dark / light).If the app starts in dark mode, the cells also show the correct dark background. If the mode changes while the app is in background, the cell background color is not changed. The cell label switches the color correct.for the tableview cells i use the following func for a gradient:func gradient(frame:CGRect) -> CAGradientLayer { let gradColor1 = UIColor(named: "gradientBright")! let gradColor2 = UIColor(named: "gradientDark")! let layer = CAGradientLayer() layer.frame = frame layer.startPoint = CGPoint(x: 0.5, y: 0) layer.endPoint = CGPoint(x: 0.5, y: 1) layer.colors = [ gradColor1.cgColor, gradColor2.cgColor ] layer.shadowOpacity = 0.7 layer.shadowRadius = 10.0 return layer}i add the gradient background to the table cells in override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {with the following codecell.layer.insertSublayer(gradient(frame: cell.bounds), at: 0)Any idea, why only the gradient func does not seem to get the correct colors after a mode change happened while app active or in background?Regards 解决方案 Cell will detect, layer will not! You must manually update all layer adaptations in the cell for example.override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { super.traitCollectionDidChange(previousTraitCollection) if traitCollection.hasDifferentColorAppearance(comparedTo: previousTraitCollection) { removeAndReaddGradientIfNeeded() }}More description here 这篇关于ios13表格模式单元格无法识别暗模式更改?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
08-06 13:05