我正在为我的 iOS 5 应用程序中的主题支持创建几个类。我的主题存储在 plist 中,然后我将它们加载到一个 Theme 对象中,我在我的应用程序中使用它来初始化各种控件。我将颜色作为字符串存储在主题中,然后使用此代码将它们转换为 UIColor:
UIColor* color = [UIColor colorWithCIColor:[CIColor colorWithString:@"0.5 0.5 0.5 1.0"]];
这适用于大多数控件,但是当我尝试将导航栏的色调设置为这样时:
//navigation bar
[self.navigationController.navigationBar setTintColor:color];
我得到这个例外:
-[UICIColor colorSpaceName]: unrecognized selector sent to instance
当我在不使用 CIColor 的情况下初始化颜色时,例如:
UIColor* color = [UIColor colorWithRed:0.5 green:0.5 blue:0.5 alpha:1.0];
[self.navigationController.navigationBar setTintColor:color];
一切都很好。
任何线索是什么原因造成的?我找不到太多关于 UICIColor 的信息,但我猜由于 UIColor 只是 CGColor 或 CIColor 之上的一个包装器,因此存在实现差异。