我有一个对象叫做GraphicPath
,它存储了填充颜色的CGMutablePath
和UIColor
值。然后我有一个名为graphic
的NSMutableArray
,其中存储了一系列最终包含在另一个类的drawRect
中绘制的图像的这些对象。在NSMutableArray中存储指向另一个对象的指针并更改它
我还有一个弹出的小模块,让用户将颜色更改为该图形。所以我有一个单独的NSMutableArray
,用于跟踪与该模块接口的所有图形中的所有颜色。我们称之为colors
。我想这样做,只要我改变colors
,GraphicPath
中的对应颜色值也会改变(所以我不必进入GraphicPaths
的数组中找到它来改变它)。
所以很明显UIColor
属性在每个GraphicPath
属性都需要有一个指向颜色的指针colors
。我对如何在数组colors
中保留一个UIColor
对象指针感到困惑,并且只要我更改此值就可以使其变得如此,GraphicPath
中的相应值也会发生更改。
因此,您有'GraphicPath'对象具有'UIColor'属性和'UIColor'可变数组。你想要在可变数组中改变对象,让它们也在'GraphicPath'中改变?但是'UIColor'不可变,所以对象不会被改变。也许你的意思是,当对象添加到颜色数组中或从颜色数组中删除时,每个'GraphicPath'应该确保它的颜色仍然在数组中?我真的很遗憾你的颜色数组发生了什么特定的变化,以及如何将这种变化传播回路径对象。你可以扩展吗? –
如果用户对某种颜色进行了改变,比如改变了图形中帽子的颜色,那么该改变将在该颜色数组中更新为存储帽子颜色的索引。然后,当图形重绘时,所有存储帽子颜色的GraphicPath也将被更改,因为它们引用MutableArray中的帽子颜色的地址。 –
我看到了,所以当用户用新颜色替换索引3处的颜色时,所有具有存储索引3处替换颜色的'color'属性的'GraphicPath'应自动开始引用索引3处的替换颜色?看起来解决方案可能涉及使颜色路径不拥有颜色,而是通过某个键或名称或在这种情况下引用索引;当它来绘制他们检索适当的键/名称/指数的颜色... –