Как отменить выбор предыдущего состояния переключателя (UIButton) - PullRequest
0 голосов
/ 20 июня 2019

У меня есть Scrollview в ScrollViewController, и я создал переключатели в другом ViewController (RadioViewController).Вот мой код для создания Radio-кнопки в RadioViewController:

- (void)setupBtn{

    self.radioBtn = [UIButton buttonWithType: UIButtonTypeCustom];
    [self.radioBtn setFrame:CGRectMake(40,38,18,18)];
    [self.radioBtn setImage: [UIImage imageNamed:@"radio-button"]forState:UIControlStateNormal];
    [self.radioBtn setImage: [UIImage imageNamed:@"radio-button-select"]forState: UIControlStateSelected];
    [self.radioBtn addTarget:self action:@selector(radioButtonTapped:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:self.radioBtn];
    } 
- (void)radioButtonTapped:(UIButton*)sender{
    NSLog(self.radioBtn.isSelected? @"Yes" : @"No");

    if (self.radioBtn.isSelected) {
        [self.radioBtn setSelected:NO];
        self.view1.backgroundColor =[UIColor clearColor];
        [self.radioBtn setImage:[UIImage imageNamed:@"radio-button"] forState:UIControlStateSelected];
    }else {
        [self.radioBtn setSelected:YES];
        self.view1.backgroundColor = [UACFCustomColors continentalLightBlueTransparent];
        [self.radioBtn setImage:[UIImage imageNamed:@"radio-button-select"] forState:UIControlStateSelected];

    }


}

Я всегда получаю self.radioBtn.isSelected = NO;

Когда я выбираю одну радиокнопку, если выбраны какие-либо другие радиокнопки, как мне установить состояние этих радиокнопок на НЕТ?

Ответы [ 2 ]

0 голосов
/ 21 июня 2019

Измените свой код на следующий код.

BOOL radioButtonClicked;

-(void)setupBtn{
self.radioBtn = [UIButton buttonWithType: UIButtonTypeCustom];
[self.radioBtn setFrame:CGRectMake(40,38,18,18)];
[self.radioBtn setImage: [UIImage imageNamed:@"radio-button"]forState:UIControlStateNormal];
[self.radioBtn setImage: [UIImage imageNamed:@"radio-button-select"]forState: UIControlStateSelected];
[self.radioBtn addTarget:self action:@selector(radioButtonTapped:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:self.radioBtn];
radioButtonClicked = YES; // Add a boolean flag and set to YES
} 

-(void)radioButtonTapped:(UIButton*)sender{
NSLog(self.radioBtn.isSelected? @"Yes" : @"No");

if (radioButtonClicked) {
   radioButtonClicked = NO;
   self.view1.backgroundColor =[UIColor clearColor];
   [self.radioBtn setImage:[UIImage imageNamed:@"radio-button"] forState:UIControlStateSelected];
   }
else {
    radioButtonClicked = YES;
    self.view1.backgroundColor = [UACFCustomColors continentalLightBlueTransparent];
    [self.radioBtn setImage:[UIImage imageNamed:@"radio-button-select"] forState:UIControlStateSelected];

   }
}
0 голосов
/ 20 июня 2019

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...