mis*_*hod 5 user-interface objective-c ios
我在iOS 5应用中创建了几个主题支持类。我的主题存储在plist中,并将它们加载到Theme对象中,该主题在我的应用中用于初始化各种控件。我将颜色存储为主题中的字符串,然后使用此代码将它们转换为UIColor:
UIColor* color = [UIColor colorWithCIColor:[CIColor colorWithString:@"0.5 0.5 0.5 1.0"]];
Run Code Online (Sandbox Code Playgroud)
这对于大多数控件都可以正常工作,但是当我尝试像这样设置导航栏的色调颜色时:
//navigation bar
[self.navigationController.navigationBar setTintColor:color];
Run Code Online (Sandbox Code Playgroud)
我得到这个例外:
-[UICIColor colorSpaceName]: unrecognized selector sent to instance
Run Code Online (Sandbox Code Playgroud)
当我不使用CIColor初始化颜色时,例如:
UIColor* color = [UIColor colorWithRed:0.5 green:0.5 blue:0.5 alpha:1.0];
[self.navigationController.navigationBar setTintColor:color];
Run Code Online (Sandbox Code Playgroud)
一切都很好。
任何线索是什么原因造成的?我找不到有关UICIColor的太多信息,但是我正在猜测,因为UIColor只是CGColor或CIColor之上的包装,因此在实现上存在差异。
小智 -1
UIColor定义在iOS 2.0,因为[UIColor colorWithCIColor]转换为iOS5.0,我认为苹果转换错误,你可以使用下面的代码:
CIColor *ci_ = [CIColor colorWithString:colorString];
UIColor *color = [UIColor colorWithRed:ci_.red green:ci_.green blue:ci_.blue alpha:ci_.alpha];
// UIColor *color = [UIColor colorWithCIColor:[CIColor colorWithString:colorString]];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1863 次 |
| 最近记录: |