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: 100, y: 100, width: 0, height: 0)) 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(100, 100, 0, 0)]; [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()
技术改变世界