UIButton setTitleColor仅适用于预设组件值ios7?
我在这里遇到了一件奇怪的事情(iOS 7,Xcode 5): 如果使用此代码,按钮标题将更改颜色:UIButton setTitleColor仅适用于预设组件值ios7?,ios,cocoa-touch,uibutton,Ios,Cocoa Touch,Uibutton,我在这里遇到了一件奇怪的事情(iOS 7,Xcode 5): 如果使用此代码,按钮标题将更改颜色: [self.delayButton setTitleColor:[UIColor purpleColor] forState:UIControlStateNormal]; 但是,如果我使用此代码,它将变为黑色: [self.delayButton setTitleColor:[UIColor colorWithRed:128/255 green:0/255 blue:128/255 alpha:
[self.delayButton setTitleColor:[UIColor purpleColor] forState:UIControlStateNormal];
但是,如果我使用此代码,它将变为黑色:
[self.delayButton setTitleColor:[UIColor colorWithRed:128/255 green:0/255 blue:128/255 alpha:1.0] forState:UIControlStateNormal];
UIColor *myColor=[UIColor colorWithRed:128/255 green:0/255 blue:128/255 alpha:1.0] forState:UIControlStateNormal];
[self.delayButton setTitleColor:[UIColor myColor] forState:UIControlStateNormal];
(仅供参考-这也会变成黑色:)
基本上,我创建/使用的任何颜色都会变成黑色,除了预设的组件值,如“redColor”、“blueColor”等
你知道为什么吗?你需要像这样使用浮点值:
[UIColor colorWithRed:128.f/255 green:0.f/255 blue:128.f/255 alpha:1.0];
在代码中使用整数除法:
128/255
结果到0
。这就是为什么在RGB通道的值为零的情况下会看到黑色。Objective-C基于C,整数除法会截断结果。你是对的-它是重复的-抱歉。仅供参考-数字中的
不需要。您可以执行128f/255
或直接执行128.0/255
。有人指出这是一个重复的问题-抱歉。(感谢您的回复!)@rmaddy您部分是不对的:128f/255
未编译(在由Xcode使用的LLVM 5.1列出的列表中)。哦,我的错误。很抱歉是的,它必须是127.f
或127.0
。