【问题标题】:How to unselect previous state of Radio Button(UIButton)如何取消选择单选按钮(UIButton)的先前状态
【发布时间】:2019-11-02 20:29:49
【问题描述】:

我在 ScrollViewController 中有一个 Scrollview,我在另一个 ViewController(RadioViewController) 中创建了单选按钮。 这是我在 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;

当我选择一个单选按钮时,如果有任何其他单选按钮被选中,我如何将这些单选按钮状态设置为 NO?

【问题讨论】:

  • 您总共有多少个单选按钮?
  • @VinuJacob 我创建了 1 个单选按钮将其添加到 uiscrollview
  • 其实你想在点击单选按钮的时候改变另一个单选按钮的状态对吧?
  • @VinuJacob 是的...我的意思是我必须取消选择以前选择的单选按钮,如果我选择另一个单选按钮
  • 为此,编写代码以更改所选单选按钮的按钮单击内的其他单选按钮图像。

标签: ios objective-c uibutton radio-button


【解决方案1】:

将您的代码更改为以下代码。

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];

   }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 2012-12-15
    • 2012-02-21
    • 2020-04-25
    • 2011-07-17
    • 1970-01-01
    • 2015-07-01
    相关资源
    最近更新 更多