根据其他开关状态将开关关闭或打开

问题描述 投票:1回答:4

如何在其他开关内关闭开关?这是一个示例-当isMale开关打开时,请关闭isFemale开关。

- (IBAction)isMale:(id)sender {
       if ([sender isOn]) {

             //TURN isFemale SWITCH OFF

       }
       else {
            ...
       }
 }

- (IBAction)isFemale:(id)sender {
       if ([sender isOn]) {

            //TURN isMale SWITCH OFF

       }
       else {
            ...
       }
 }

我一直在阅读Apple开发文档,但找不到有关在另一个开关内更改开关的任何信息。干杯。

ios xcode uiswitch
4个回答
2
投票

首先需要在头文件IBOutlet文件中同时创建两个UISwitch.h

@property (strong, nonatomic) IBOutlet UISwitch *isMale;
@property (strong, nonatomic) IBOutlet UISwitch *isFemale;

然后在IBAction中执行以下操作。

- (IBAction)isMale:(id)sender {
   if ([sender isOn]) {

         [_isFemale setOn:NO animated:YES];

   }
   else {
        // do what you want.
   }
}
- (IBAction)isFemale:(id)sender {
   if ([sender isOn]) {

        [_isMale setOn:NO animated:YES];

   }
   else {
        //do what you want
   }
}

记住将两个IBOutlet都连接到UIViewController中的相应对象。


1
投票

这是您需要的简单示例

- (void)viewDidLoad 
 {
    [super viewDidLoad];
   // Do any additional setup after loading the view, typically from a nib.

    [_btnMale setOn:YES animated:YES];
    [_btnFemale setOn:NO animated:YES];

 }


 - (IBAction)btnMaleClick:(id)sender
 {
     if ([sender isOn])
     {
        [_btnFemale setOn:NO animated:YES];
     }

 }

 - (IBAction)btnFemaleClick:(id)sender
 {
    if ([sender isOn])
    {
       [_btnMale setOn:NO animated:YES];
    }

  }

0
投票

这里是如何快速切换按钮状态以供将来参考

override func viewDidLoad() {
    super.viewDidLoad()

    btnMale.setOn(true, animated: true)
    btnFemale.setOn(false, animated: true)

}

@IBAction func btnMaleClick(sender: UISwitch){
    if sender.on{
        btnFemale.setOn(false, animated: true)
    }
}
@IBAction func btnFemaleClick(sender: UISwitch){
    if sender.on{
        btnMale.setOn(false, animated: true)
    }
}

0
投票

在Swift 5.1(Xcode 11)中使用

       [switchPass .setOn(false, animated: true)]
© www.soinside.com 2019 - 2024. All rights reserved.