我一直在解决采用新的iOS 13动态色彩的任务,并且获得了使用CGContextSaveGState
,CGContextSetStrokeColorWithColor
,CGContextAddPath
等在屏幕上绘制形状的实现。我认为,因为CGContextSetStrokeColorWithColor要求我通过CGColor
的UIColor
,因此,我传递的[UIColor labelColor]
颜色的“动态”性质基本上会破坏并且不再是动态的。
没有人知道如何处理这样的场景,在这些场景中我使用CGContextSetStrokeColorWithColor
进行绘制,但也想利用并增加对新的iOS 13动态颜色的支持?
[我拥有的是UIView
,其中我持有NSMutableArray
个实例的CALayer
实例,这些实例使用CGContextSetStrokeColorWithColor
,并且我传递了动态颜色,但将其CGColor
传递给了CGContextSetStrokeColorWithColor
。然后,我使用layoutSublayersOfLayer
设置那些.frame
实例的CALayer
。在这种情况下,为了更新将其传递给它们的那些CALayer
实例的颜色,我必须重写UIView
的traitCollectionDidChange并调用setNeedsDisplay