【问题标题】:radio button is not changing by selecting单选按钮不会通过选择更改
【发布时间】:2016-12-03 17:13:54
【问题描述】:

我有 2 个单选按钮男性,女性。我做了每一件事..当我尝试选择男性,女性单选按钮时。它根本没有选择。这是我的代码:

 @IBOutlet var btn_male: UIButton! // create outlet for radio button
 @IBOutlet var btn_female: UIButton!

 @IBAction func btn_male_female_click(sender: UIButton) {
        switch sender.tag {
        case 10:
            //male select
            if (sender.selected == true) {
                sender.selected = false;
                btn_male.selected = true;
                btn_female.selected = false;
                gender = "1"
                print("male  selected")

            }else{
                sender.selected = true;
                btn_male.selected = false;
                btn_female.selected = true;
                gender = "2"
                 print("female  selected")
            }
            break;
        case 20:
            //female select
            if (sender.selected == true) {
                sender.selected = false;
                btn_female.selected = true;

                btn_male.selected = false;
                gender = "2"
                 print("female  selected")
            }else{
                sender.selected = true;
                btn_female.selected = false;
                btn_male.selected = true;
                gender = "1"
                 print("male  selected")
            }

            break;
        default:
            break;
        }
    }

我不知道为什么不选择。要更改图像,我将状态配置更改为已选择,并保留选定的无线电图像。

但我的问题是它根本没有选择。请帮助我。谢谢

更新:

在我更新此解决方案后。我只是从我的数据库中检查,我正在展示他们已经保存的特定用户的性别。但是我有一个问题。

例如,如果我选择男性并保存它。当我返回我的个人资料屏幕时,我的男性按钮显示为选中。这来自 db 没有问题。但是当我想将单选按钮从男性更改为女性时,以及当我按下女性单选按钮时。我的男性单选按钮仍处于选中状态,它不会更改为取消选中。如果我这样做两次,那么它就会改变。

 @IBAction func btn_male_female_click(sender: UIButton) {
        self.selectedButton.selected = false
        self.selectedButton = sender
        self.selectedButton.selected = true
        gender = "male"
        if sender == btn_female {
            gender = "female"
        }
        else  if sender == btn_male {

            gender = "male"
        }
}
 override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(true)

 if profileData.Gender .isEmpty {





        }else{
            if profileData.Gender == "male"
            {
                self.btn_male.selected = true
                self.btn_female.selected = false
            }
            else if profileData.Gender == "female"
            {
                self.btn_male.selected = false
                self.btn_female.selected = true
            }

        }
}

【问题讨论】:

  • 更改所选按钮的图像,使用setImage:... 方法分配,因此需要两个图像。
  • 这个代码已经可以正常工作了
  • @mack 在您的情况下,您为此使用了一些库,因此您必须根据该库编写代码。
  • @HimanshuMoradiya 不,伙计,当我把它交给客户时,它的 din 工作。我上面的代码帖子没有​​选择按钮
  • 此代码用于您的按钮单击而不是用于 viewdidload() 方法,您必须在 viewdidload() 中进行检查

标签: ios swift uibutton


【解决方案1】:

您可以通过简单地创建另一个UIButton 实例来解决此问题,该实例将选定的按钮保存在这两个按钮之间,如下所示。

@IBOutlet var btn_male: UIButton! // create outlet for radio button
@IBOutlet var btn_female: UIButton!
var selectedButton = UIButton()

现在像这样使用按钮操作。

@IBAction func btn_male_female_click(sender: UIButton) {
    self.selectedButton.selected = false
    self.selectedButton = sender 
    self.selectedButton.selected = true
    gender = "1" 
    if sender == btn_female {
         gender = "2"
    }
}

编辑:您可以像这样管理选定的属性。

if !(profileData.Gender.isEmpty) {

    if profileData.Gender == "male"
    {
         self.selectedButton = self.btn_male
    }
    else if profileData.Gender == "female"
    {
         self.selectedButton = self.btn_female             
    }
    self.selectedButton.selected = true
}

【讨论】:

  • 它在这一行中引发错误gender = (sender == btn_male)?; "1"; : "2" 要求我添加更多逗号
【解决方案2】:

在你的代码问题是

case 10:
        //male select
        if (sender.selected == true) {
            sender.selected = false; // btn_male selected "false"
            btn_male.selected = true; // btn_male selected "true" that's the problem
            btn_female.selected = false;
            gender = "1"
            print("male  selected")

        }

希望这段代码对你有帮助

@IBAction func btn_male_female_click(sender: UIButton) {
    switch sender.tag {
    case 10:
        //male select
        if (sender.selected == true) {
            sender.selected = false;
            btn_female.selected = false;
            gender = "1"
            print("male  selected")

        }else{
            sender.selected = true;
            btn_female.selected = true;
            gender = "2"
            print("female  selected")
        }
        break;
    case 20:
        //female select
        if (sender.selected == true) {
            sender.selected = false;
            btn_male.selected = false;
            gender = "2"
            print("female  selected")
        }else{
            sender.selected = true;
            btn_male.selected = true;
            gender = "1"
            print("male  selected")
        }

        break;
    default:
        break;
    }
}

【讨论】:

    猜你喜欢
    • 2021-01-02
    • 1970-01-01
    • 2019-01-06
    • 2021-04-09
    • 2020-05-17
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多