0

Я пытаюсь установить условие на основе цвета фона кнопки. Я нашел решение в stackoverflow, но это не для меня, потому что то, что я делаю иначе, это мои кнопки в массиве, а условие if находится в цикле for. Это похоже на проверку всех кнопок в массиве при каждом нажатии кнопки, и если какая-либо кнопка имеет цвет фона, то черный не показывает следующий interface.
Этот метод устанавливает тот цвет, который делает добро.Проверить кнопку backgroundColor in if statement

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, и я хочу сохранить его таким образом, потому что это требование.

+1

Вы можете передать этот вопрос для лучшего выбора ответов .. http://stackoverflow.com/questions/970475/how-to-compare-uicolors – Tejvansh

ответ

0

Вы не должны использовать цвет кнопки, у вас должен быть другой массив, содержащий NSNumber (или пользовательский класс), который содержит состояние каждой кнопки. Это будет легко использовать и проверять. Попытка использовать пользовательский интерфейс для хранения состояния модели всегда будет приводить к таким проблемам.

+0

хорошего предложение. Позвольте мне попробовать! –

0

Вместо проверки кнопки с использованием цвета, перейдите к тегам. Используйте теги, чтобы установить определенный числовой идентификатор для кнопки, и вы можете использовать их во всем коде. Подобно этому,

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

ИЛИ

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

или вы можете установить метку в интерфейс построителя свойств кнопки.