gpt4 book ai didi

iphone - 将 CGColorRef 作为 KVC/KVO 中的值传递

转载 作者:行者123 更新时间:2023-12-03 21:07:14 27 4
gpt4 key购买 nike

我正在使用 Opacity 生成所有 Quartz2D 图稿,现在我正在解决通过 KVC/KVO 更改颜色的问题。 Opacity 将其所有颜色变量定义为 @dynamic 并实现其自己的访问器作为类定义的一部分。

我的问题是;如何通过键值传递新的 CGColorRef 值?

到目前为止(作为测试平台)我已经做到了这一点:

// Testbed ... Testbed ... Testbed ... Testbed ... Testbed ... Testbed ... Testbed ...
CGColorSpaceRef space = CGColorSpaceCreateDeviceRGB();
CGFloat components[4] = {1.0f, 1.0f, 1.0f, 1.0f};
CGColorRef color = CGColorCreate(space, components);

[myCALayerReceiverObject setValue: color forKey: @"numColour"];
// Testbed ... Testbed ... Testbed ... Testbed ... Testbed ... Testbed ... Testbed ...

颜色空间和创建代码直接从 Opacity 的 CALayer 类生成器中提取(我还没有那么先进),但是传递“颜色”作为值会导致 iPhone 模拟器崩溃,并且 XCode 给我一个非常神秘的警告;

“不兼容的指针类型将“CGColorRef”(又名结构“CGColor *”)发送到“id”类型的参数”。

如何包装 CGColorRef 以将其通过 KVC 传递到接收器?提前致谢。

最佳答案

将 CGColorRef 转换为 (id) 有效。以下是将阴影设置为黑色的示例:

[layer setValue:(id)[UIColor blackColor].CGColor forKey:@"shadowColor"];

关于iphone - 将 CGColorRef 作为 KVC/KVO 中的值传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5929985/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com