如何在其他开关内关闭开关?这是一个示例-当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开发文档,但找不到有关在另一个开关内更改开关的任何信息。干杯。
首先需要在头文件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
中的相应对象。
这是您需要的简单示例
- (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];
}
}
这里是如何快速切换按钮状态以供将来参考
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)
}
}
在Swift 5.1(Xcode 11)中使用
[switchPass .setOn(false, animated: true)]