检查按钮背景if语句中的颜色

时间:2015-01-20 07:47:23

标签: ios if-statement background-color uicolor uibackgroundcolor

我正在尝试根据按钮背景颜色设置if条件。我在stackoverflow上找到了一个解决方案,但它并不适合我,因为我所做的不同是我的按钮是在一个数组中,而if条件是在for循环中。这就像每次点击一个按钮时检查数组中的所有按钮,如果任何按钮的背景颜色为黑色,则不显示下一个interface
这种方法设置了那些表现良好的颜色。

for (int i=0; i<10; i++)
{
    [buttonsArray[i] setColor:[UIColor blackColor]];
}

现在问题在于这个方法:

-(void)myFunction
{   
    for (int i=0; i<10; i++)
    {
        if([buttonsArray[i] backgroundColor:[UIColor blackColor]])
        {
            //code I want to use if the condition is true
        }}}

我还尝试了以下条件:

 if([buttonsArray[i].backgroundColor isequal:[UIColor blackColor]])
//or
if([[buttons[i] background] isEqual:myBlack])
//or
if([buttonsArray[i] backgroundColor]==[UIColor blackColor])

请注意,我使用setColor设置的颜色不是setBackgroundColor,我希望保持这种方式,因为这是一项要求。

2 个答案:

答案 0 :(得分:0)

您不应该使用按钮的颜色,您应该有另一个包含NSNumber(或自定义类)的数组,该数组保存每个按钮的状态。这将易于使用和测试。尝试使用UI来保存模型状态总会导致这样的问题。

答案 1 :(得分:0)

不使用颜色检查按钮,而是使用标签。 使用标签为按钮设置特定的数字ID,您可以在整个代码中使用相同的数字ID。像这样,

myButton.tag=1;
myButton.tag=2;

for (int i=0; i<10; i++)
{
    [buttonsArray[i] setTag:i];
}

或者您可以在按钮的界面构建器属性中设置标记。