2015-02-11 17 views
0

У меня есть изображение с тремя кнопками, я хочу проверить условия между ними. когда я нажимаю кнопку 1, это означает, что изменение фонового изображения становится синим. в то же время я нажимаю кнопку 1, она переместится в нормальный белый цвет. То же самое для еще двух кнопок. Для этого процесса я использую этот код. [tempBtn setSelected:! tempBtn.selected];Как проверить три условия кнопки

ButtonImageSelected = [UIImage imageNamed:@"lblue.png"]; 
ButtonImage = [UIImage imageNamed:@"l.png"]; 
button1 = [UIButton buttonWithType:UIButtonTypeCustom]; 
button1.frame = CGRectMake(80, 27, 36, 36); 
[button1 setBackgroundImage:ButtonImage forState:UIControlStateNormal]; 

button1.tag = 1; 
[button1 setBackgroundImage:ButtonImageSelected 
        forState:UIControlStateSelected]; 
button1.userInteractionEnabled = YES; 
[button1 addTarget:self 
       action:@selector(button1Selector:) 
    forControlEvents:UIControlEventTouchDown]; 
[cell.contentView addSubview:button1]; 

Еще две кнопки так же, как кнопки 1.

Мое условие: при нажатии кнопки 1 нажата кнопка означает, что 3 не должно изменяться. при нажатии кнопки 3 означает, что кнопка 1 не должна меняться. Кнопка 2 может выбрать в обоих условиях. Я использую код ниже, чтобы проверить условия, но он не работает правильно.

- (void)select_id:(UIButton *)tempBtn { 
    if (tempBtn.tag == 1) { 
    button3.userInteractionEnabled = NO; 
    [tempBtn setSelected:!tempBtn.selected]; 
    } else if (tempBtn.tag == 3) { 
    button1.userInteractionEnabled = NO; 
    [tempBtn setSelected:!tempBtn.selected]; 
    } 
} 

Помогите мне, как проверить условия. В приведенном выше методе.

ответ

1

Я считаю, что вы пытаетесь добиться того, чтобы каждая кнопка менялась, когда вы нажимаете на них. После того, как вы определили свои кнопки, вы можете обеспечить их чередование изображений для каждого состояния.

Переменные изображения на основе Баттона Нажимает

-(IBAction)buttonPressed:(id)sender { 
    switch ([sender tag]) { 
     case 1: 
      if ([UIImagePNGRepresentation(button1.imageView.image) isEqualToData:UIImagePNGRepresentation([UIImage imageNamed:@"default1. png"])]) { 
       [button1 setImage:[UIImage imageNamed:@"selected1.png"] forState:UIControlStateNormal]; 
      } else { 
       [button1 setImage:[UIImage imageNamed:@"default1.png"] forState:UIControlStateNormal]; 
      } 
      break; 
     case 2: 
      if ([UIImagePNGRepresentation(button2.imageView.image) isEqualToData:UIImagePNGRepresentation([UIImage imageNamed:@"default2. png"])]) { 
       [button2 setImage:[UIImage imageNamed:@"selected2.png"] forState:UIControlStateNormal]; 
      } else { 
       [button2 setImage:[UIImage imageNamed:@"default2.png"] forState:UIControlStateNormal]; 
      } 
      break; 
     case 3: 
      if ([UIImagePNGRepresentation(button3.imageView.image) isEqualToData:UIImagePNGRepresentation([UIImage imageNamed:@"default3.png"])]) { 
       [button3 setImage:[UIImage imageNamed:@"selected3.png"] forState:UIControlStateNormal]; 
      } else { 
       [button3 setImage:[UIImage imageNamed:@"default3.png"] forState:UIControlStateNormal]; 
      } 
      break; 
     default: 
      break; 
    } 
} 

Примечание: убедитесь, что вы добавить действие для каждой кнопки, а также изменить имена изображений


Добавления Действия для каждой кнопки

[button1 addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchDown]; 
[button2 addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchDown]; 
[button3 addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchDown]; 

Убедитесь, что вы сделали следующее:

  1. Добавлено действие для каждой кнопки
  2. Tagged каждая кнопка соответственно
  3. Установить исходные изображения каждой кнопки, чтобы соответствовать условию
+0

его тоже не работает для меня .. –

+0

я редактировал ответ; оказывается, что условие не правильно сравнивало изображения. Он обновлен и исправлен. Перед выполнением кода убедитесь, что вы выполнили все шаги. –

0

Попробуйте это. Перед этим убедитесь, что метки являются правильными для каждой кнопки

- (void)select_id:(UIButton *)tempBtn { 
    if (tempBtn.tag == 1) { 
    button3.userInteractionEnabled = NO; 
    [tempBtn setSelected:!tempBtn.selected]; 
    } else if (tempBtn.tag == 3) { 
    button1.userInteractionEnabled = NO; 
    [tempBtn setSelected:!tempBtn.selected]; 
    } 
    else{ 
    button1.userInteractionEnabled = YES; 
    button2.userInteractionEnabled = YES; 
    [tempBtn setSelected:!tempBtn.selected]; 


    } 
} 
+0

Я пробовал это, в этом коде все кнопки меняются на blue.its, не работает, помогите мне бросить. –

+0

Ваш вопрос не очень ясен. Вы хотите только одну синюю кнопку или нулевые синие кнопки. или что-то другое. – sateesh

+0

цвет меняется правильно, но условия неправильные, когда я выбираю кнопку 1, кнопка 3 не должна меняться. но кнопка 3 меняется. когда выбрана кнопка 3, кнопка 1 не должна изменяться. для меня все кнопки меняются, когда я выбираю. –

Смежные вопросы