Переключатель выбора изображения в ios
Здравствуйте, я использую кнопку в качестве переключателя в моем приложении. В приложении есть две кнопки, когда мужчина и женщина однажды выбирают мужчину, его изображение изменится на зеленый, если снова выбрать изображение серого цвета. То же самое происходит для женской кнопки. Эта работа хороша. Но когда я выбрал мужчину, то у меня есть выбор женщины, а затем кнопка мужского пола в серый цвет, в то время как вы можете выбрать только один пол. Моя проблема в том, что когда я выбираю мужчину, то после выбора женщины изображение кнопки мужчины меняется, но если пользователь хочет установить пол мужчины, его нужно нажать два раза???
-(IBAction)selectMale:(id) sender{ // MALE BUTTON
UIButton *RadioButton1 = (UIButton*)sender;
[self radiobuttonAction:RadioButton1];
}
-(void)radiobuttonAction:(UIButton *)Button
{
if(![Button isSelected])
{
[Button setSelected:YES];
[Button setImage:[UIImage imageNamed:@"radio_active.png"] forState:UIControlStateSelected];
gender = @"Male";
[btnFemale setImage:[UIImage imageNamed:@"radio.png"] forState:UIControlStateSelected];
}
else
{
[Button setSelected:NO];
[Button setImage:[UIImage imageNamed:@"radio.png"] forState:UIControlStateNormal];
}
}
-(IBAction)selectFemale:(id) sender{
UIButton *RadioButton1 = (UIButton*)sender;
[self radiobuttonActionFemale:RadioButton1];
}
-(void)radiobuttonActionFemale:(UIButton *)Button
{
if(![Button isSelected])
{
[Button setSelected:YES];
[Button setImage:[UIImage imageNamed:@"radio_active.png"] forState:UIControlStateSelected];
gender = @"Female";
[btnMale setImage:[UIImage imageNamed:@"radio.png"] forState:UIControlStateSelected];
}
else
{
[Button setSelected:NO];
[Button setImage:[UIImage imageNamed:@"radio.png"] forState:UIControlStateNormal];
}
}
3 ответа
В radiobuttonAction
Метод, добавьте, наконец, строку в условии if:
[btnFemale setSelected:NO];
И в radiobuttonActionFemale
метод, добавьте строку, наконец, в условии if:
[btnMale setSelected:NO];
Попробуйте сбросить противоположный пол (например, сбросить btnFemale при нажатии кнопки btnMale) перед установкой нового пола.
Попробуйте этот подход. Добавьте все кнопки (мужчины и женщины) в массив и в обработчике действий кнопки измените состояния кнопок:
- (void) buttonPressed:(UIButton *)sender
{
for (UIButton *button in self.buttonsArray) {
if([button isKindOfClass:[UIButton class]]){
button.selected = (button.state & sender.state);
}
}