我一直在解决采用新的iOS 13动态颜色的任务,并且得到了一个实现,该实现使用CGContextSaveGState
,CGContextSetStrokeColorWithColor
,CGContextAddPath
等在屏幕。我认为是因为CGContextSetStrokeColorWithColor要求我通过CGColor
的{{1}},所以我传递的颜色UIColor
的“动态”本质基本上会破坏并且不再动态
有人知道如何处理使用[UIColor labelColor]
进行绘制但又想利用并添加对新的iOS 13动态色彩的支持的情况吗?
答案 0 :(得分:0)
事实证明这很容易。
我所拥有的是UIView
,其中我拥有NSMutableArray
个实例中的CALayer
个实例,这些实例使用CGContextSetStrokeColorWithColor
,并且传递了动态颜色,但传递了其{{1} }到CGColor
。然后,我使用CGContextSetStrokeColorWithColor
来设置那些layoutSublayersOfLayer
实例中的.frame
。在这种情况下,为了更新我将其传递给的CALayer
实例的颜色,我必须覆盖CALayer
的traitCollectionDidChange并调用UIView
setNeedsDisplay