iOS开发技巧 - 使用和定制开关控件(UISwitch)

时间:2023-03-10 04:43:02
iOS开发技巧 - 使用和定制开关控件(UISwitch)

1. 初始化加载到视图界面

(Swift)

import UIKit

class ViewController: UIViewController {
// 1. create a property of type UISwitch
var mainSwitch:UISwitch! override func viewDidLoad() {
super.viewDidLoad() // 2. create switch
mainSwitch = UISwitch(frame: CGRect(x: , y: , width: , height: ))
view.addSubview(mainSwitch)
}
}

(Objective-C)

#import "ViewController.h"

@interface ViewController ()

// 1. create a property of type UISwitch
@property (nonatomic, strong) UISwitch *mainSwitch; @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad]; // 2. create switch
self.mainSwitch = [[UISwitch alloc] initWithFrame:
CGRectMake(, , , )];
[self.view addSubview:self.mainSwitch];
} @end

2. 设置开关状态

(Swift)

mainSwitch.setOn(true, animated: true)

(Objective-C)

[self.mainSwitch setOn:YES];

3. 判断开关状态

(Swift)

if mainSwitch.on{
/* Switch is on */
} else {
/* Switch is off */
}

(Objective-C)

if ([self.mainSwitch isOn]){
NSLog(@"The switch is on.");
} else {
NSLog(@"The switch is off.");
}

4. 添加事件监听

(Swift)

mainSwitch.addTarget(self,
action: "switchIsChanged:",
forControlEvents: .ValueChanged) func switchIsChanged(sender: UISwitch) {
println("Sender is = \(sender)")
if sender.on{
println("The switch is turned on")
} else {
println("The switch is turned off")
}
}

(Objective-C)

[self.mainSwitch addTarget:self
action:@selector(switchIsChanged:)
forControlEvents:UIControlEventValueChanged]; - (void) switchIsChanged:(UISwitch *)paramSender {
NSLog(@"Sender is = %@", paramSender);
if ([paramSender isOn]){
NSLog(@"The switch is turned on.");
} else {
NSLog(@"The switch is turned off.");
}
}

5. 定制开关UI

/* Adjust the off-mode tint color */
mainSwitch.tintColor = UIColor.redColor() /* Adjust the on-mode tint color */
mainSwitch.onTintColor = UIColor.brownColor() /* Also change the knob's tint color */
mainSwitch.thumbTintColor = UIColor.greenColor()