在 if 语句中检查按钮背景颜色
Check button backgroundColor in if statement
我正在尝试根据按钮背景颜色设置 if 条件。我在 Whosebug 上找到了一个解决方案,但它不适合我,因为我所做的不同是我的按钮在一个数组中,而 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 中尝试了以下条件:
if([buttonsArray[i].backgroundColor isequal:[UIColor blackColor]])
//or
if([[buttons[i] background] isEqual:myBlack])
//or
if([buttonsArray[i] backgroundColor]==[UIColor blackColor])
请注意,我正在使用 setColor
设置颜色而不是 setBackgroundColor
,我想保持这种状态,因为这是一项要求。
您不应该使用按钮的颜色,您应该有另一个包含 NSNumber
(或自定义 class)的数组来保存每个按钮的状态。这将易于使用和测试。尝试使用 UI 来保持你的模型状态总是会导致这样的问题。
不要使用颜色检查按钮,而是使用标签。
使用标签为按钮设置特定的数字 ID,您可以在整个代码中使用相同的标签。像这样,
myButton.tag=1;
myButton.tag=2;
或
for (int i=0; i<10; i++)
{
[buttonsArray[i] setTag:i];
}
或者您可以在按钮的界面构建器属性中设置标签。
我正在尝试根据按钮背景颜色设置 if 条件。我在 Whosebug 上找到了一个解决方案,但它不适合我,因为我所做的不同是我的按钮在一个数组中,而 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 中尝试了以下条件:
if([buttonsArray[i].backgroundColor isequal:[UIColor blackColor]])
//or
if([[buttons[i] background] isEqual:myBlack])
//or
if([buttonsArray[i] backgroundColor]==[UIColor blackColor])
请注意,我正在使用 setColor
设置颜色而不是 setBackgroundColor
,我想保持这种状态,因为这是一项要求。
您不应该使用按钮的颜色,您应该有另一个包含 NSNumber
(或自定义 class)的数组来保存每个按钮的状态。这将易于使用和测试。尝试使用 UI 来保持你的模型状态总是会导致这样的问题。
不要使用颜色检查按钮,而是使用标签。 使用标签为按钮设置特定的数字 ID,您可以在整个代码中使用相同的标签。像这样,
myButton.tag=1;
myButton.tag=2;
或
for (int i=0; i<10; i++)
{
[buttonsArray[i] setTag:i];
}
或者您可以在按钮的界面构建器属性中设置标签。