ios - 如何取消选择单选按钮(UIButton)的先前状态

标签 ios objective-c uibutton radio-button

我在 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;

当我选择一个单选按钮时,如果选择了任何其他单选按钮,如何将这些单选按钮状态设置为“否”?

最佳答案

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

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

   }
}

关于ios - 如何取消选择单选按钮(UIButton)的先前状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56678859/

相关文章:

ios - 如何释放全局变量的内存?

ios - iOS 中背景图像之间的过渡

objective-c - 将 FileURL 的名称写入粘贴板

iphone - iOS 以编程方式创建的按钮不起作用

iphone - 没有边框的圆角矩形 UIButton

iOS 和 Parse.com session 管理

iphone - 获取 nsdictionary 中特定键的值

iphone - Objective-C Bonjour/TCP 堆栈

c# - Monotouch TouchUpInside 不起作用,TouchDown 起作用

jquery - 设置隐藏的下拉选择值会导致页面在 iOS 11 safari 中重新加载