gpt4 book ai didi

ios - 适用于 iOS 的 NSColorList,或在 IB 和代码之间共享颜色的某种方式

转载 作者:行者123 更新时间:2023-11-29 10:40:53 25 4
gpt4 key购买 nike

在开发我的应用程序时,我通常会在 UIColor 上创建一个类别,并为 Interface Builder 为我的特定颜色创建一个自定义调色板(CLR 文件)。但这意味着我必须在 2 个地方添加新颜色并更新旧颜色。我可以创建一堆 IBOutlet,在代码中设置颜色,而不使用 CLR 文件,但我讨厌创建大量的 IBOutlet

我想将 CLR 文件包含在我的包中,然后在代码中需要的任何地方访问颜色。在 OS X 上,我相信我可以使用 NSColorList 类来实现这一点。由于 iOS 不存在 NSColorList,我相信我唯一的选择是构建我自己的“ColorList”类,该类可以从 CLR 文件创建和返回 UIColor

CLR 文件格式是否记录在某处?我是否缺少其他方法来将我的颜色保存在一个地方并从 IB 和代码访问它们?

Apple 文档:

最佳答案

我已经做到了。我不能完全分享我在工作中根据 NDA 编写的所有代码。但作为提示,我想出的解决方案是一个非常简单的 clr 导出器到 UIColor 类别。您可以轻松编写一个 Mac OS 终端应用程序来执行此操作。示例:

    for (NSString *key in _colorList.allKeys) //_colorList is NSColorList
{
NSColor *color = [_colorList colorWithKey:key];

NSNumber *red = @([color redComponent]);
NSNumber *blue = @([color blueComponent]);
NSNumber *green = @([color greenComponent]);
NSNumber *alpha = @([color alphaComponent]);

NSString *method = [NSString stringWithFormat:methodString, key, red, blue, green, alpha];
[codeString appendString:method];
}

如果您让您的设计师遵循一些常见的 Cocoa 方法命名和颜色命名约定标准,您就可以在 IB 中使用 CLR 并使用导出器导出您的类别。这不完全是您正在寻找的(或者我正在寻找的),但它确实可以完成工作。

关于ios - 适用于 iOS 的 NSColorList,或在 IB 和代码之间共享颜色的某种方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24613042/

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