我正在使用下面的代碼行,但它似乎沒有做我期待的,這是要查明是否標題文本顏色的按鈕標題是綠色的。但是,我沒有收到編譯錯誤,所以它必須做些什麼:我可以比較按鈕的文字顏色嗎?
if ([sfield1 currentTitleColor] != [UIColor greenColor])
有人知道是否有辦法做這種比較嗎?謝謝。
我正在使用下面的代碼行,但它似乎沒有做我期待的,這是要查明是否標題文本顏色的按鈕標題是綠色的。但是,我沒有收到編譯錯誤,所以它必須做些什麼:我可以比較按鈕的文字顏色嗎?
if ([sfield1 currentTitleColor] != [UIColor greenColor])
有人知道是否有辦法做這種比較嗎?謝謝。
您可以嘗試使用 -
isEqual:
但是,你需要在使用它,如果有顏色模型的差異要小心,那麼它可能會失敗。
[[yourfeild currentTitleColor] isEqual:[UIColor yourcurrentcolor]];
你只是等於內存地址,也就是,顯然是不相等的,因爲它們不是完全相同的對象。
這與@verhage發佈的答案非常相似。請確保你不提供重複的答案。如果你有相同的答案,只需投票相似的答案,而不是重新發布它。 – visakh7 2012-04-27 06:19:20
好吧,我是新用戶。它不會再重複。 – 2012-04-27 06:21:51
在iOS 5中&後,UIColor
提供干將爲HSL和RGB colorsystems,所以你可以只寫一個比較那些兩個給定顏色的效用函數...
或者,你嘗試過比較的CIColor性質兩種顏色?
試試這個可能工作。,。,。
but=[[UIButton alloc]init];
[but setTitle:@"nice" forState:UIControlStateNormal];
[but setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
[but setFrame:CGRectMake(100, 450, 40, 20)];
[self.view addSubview:but];
if (but.titleLabel.textColor==[UIColor blueColor])
{
NSLog(@"nothing., it is very easy.,.");
}
我正在學習,。,。,,。
謝謝。這種方法也行得通。 – reid55 2012-04-29 07:37:36
採取兩種顏色運行它們通過:
UIColor *color = value;
const CGFloat *components = CGColorGetComponents(color.CGColor);
NSString *colorAsString = [NSString stringWithFormat:@"%f,%f,%f,%f", components[0], components[1], components[2], components[3]];
兩個字符串然後比較? 也許有點矯枉過正,但如果以上所有都不起作用,這可能是最後的手段。 (我強烈建議試圖弄清楚爲什麼isEqual不能正常工作
謝謝,但那也行不通 – reid55 2012-04-27 05:31:26
@ reid55你有沒有試過這種否定? – rishi 2012-04-27 05:32:59
我不確定我明白你的意思因爲我不想等於綠色,所以我試着什麼都不做,當它等於綠色,並把我的操作邏輯放在else子句中時 – reid55 2012-04-27 05:58:00