一、头文件的定义
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
{
//定义一个开关控件,可以进行状态的改变
//开:关:两种状态可以切换
UISwitch* _mySwicth ;
}
@property(retain,nonatomic) UISwitch* mySwitch ;
@end
所有UIKit框架库中的控件均以UI开头,苹果官方的j控件都定义在UIKit框架库中
二、代码
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
//同步属性和成员变量
@synthesize mySwitch = _mySwicth ;
-(void) viewDidLoad
{
[super viewDidLoad] ;
//创建一个开关对象,继承于UIView的
_mySwicth = [[UISwitch alloc] init] ;
//苹果官方的控件的位置设置
//位置X,Y的值可以改变
//宽度和高度值无法改变,即80和40这两个参数是无效的,系统默认固定
_mySwicth.frame = CGRectMake(100, 100, 80, 40) ;
//开关s状态设置属性
//YES:开启,NO:关闭
_mySwicth.on = YES ;
//这两者是等价的语法
[_mySwicth setOn:YES] ;
//设置开关状态,以及切换动画效果
[_mySwicth setOn:YES animated:NO] ;
//设置开启状态的风格颜色
[_mySwicth setOnTintColor:[UIColor redColor]] ;
//设置开关按钮的颜色
[_mySwicth setThumbTintColor:[UIColor greenColor]] ;
//设置整体风格的颜色
[_mySwicth setTintColor:[UIColor purpleColor]] ;
//向开关控件添加事件函数
//P1:函数实现对象,P2:函数对象,P3:事件响应时的事件类型,UIControlEventValueChanged:状态发生变化是触发函数
[_mySwicth addTarget:self action:@selector(swChange:) forControlEvents:UIControlEventValueChanged] ;
[self.view addSubview:_mySwicth] ;
}
//参数传入开关对象本身
-(void) swChange:(UISwitch*) sw
{
//on表示当前状态,YES是开着,NO是关着
if (sw.on == YES) {
NSLog(@"开关被打开!") ;
} else {
NSLog(@"开关被关闭!") ;
}
NSLog(@"开关状态发生变化!") ;
}
@end