CGContextSetStrokeColorWithColor`具有iOS 13动态颜色,在黑暗模式切换后不会自动刷新UI

问题描述 投票:0回答:1

我一直在解决采用新的iOS 13动态色彩的任务,并且获得了使用CGContextSaveGStateCGContextSetStrokeColorWithColorCGContextAddPath等在屏幕上绘制形状的实现。我认为,因为CGContextSetStrokeColorWithColor要求我通过CGColorUIColor,因此,我传递的[UIColor labelColor]颜色的“动态”性质基本上会破坏并且不再是动态的。

没有人知道如何处理这样的场景,在这些场景中我使用CGContextSetStrokeColorWithColor进行绘制,但也想利用并增加对新的iOS 13动态颜色的支持?

draw ios13
1个回答
0
投票
结果相当简单。

[我拥有的是UIView,其中我持有NSMutableArray个实例的CALayer实例,这些实例使用CGContextSetStrokeColorWithColor,并且我传递了动态颜色,但将其CGColor传递给了CGContextSetStrokeColorWithColor。然后,我使用layoutSublayersOfLayer设置那些.frame实例的CALayer。在这种情况下,为了更新将其传递给它们的那些CALayer实例的颜色,我必须重写UIView的traitCollectionDidChange并调用setNeedsDisplay

© www.soinside.com 2019 - 2024. All rights reserved.