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



我正在尝试根据按钮背景颜色设置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,我想保持这种状态,因为这是一个要求。

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

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

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

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

或者您可以在按钮的界面生成器属性中设置标签。

相关内容

  • 没有找到相关文章

最新更新