Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UIButton setTitleColor仅适用于预设组件值ios7?_Ios_Cocoa Touch_Uibutton - Fatal编程技术网

UIButton setTitleColor仅适用于预设组件值ios7?

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:

我在这里遇到了一件奇怪的事情(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: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