1.UISwitch控件的概念,创建,属性,应用。
Viewcontroller.h文件声明
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
//创建一个控件属性
{
//以UI开头的控件都是属于UIKit的控件
//定义一个开关控件
//可以进行状态的改变 开和关,两种状态
//所有UIKit框架库(苹果官方的控件都定义在此)中的控件均以UI开头
UISwitch * _mySwitch;
}
@property(retain,nonatomic) UISwitch * mySwitch;
@end
Viewcontroller.m文件的实现:
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
//同步属性和成员变量 其实不用这几句话 现在已经可以默认声明了
@synthesize mySwitch = _mySwitch;
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//创建一个开关对象 继承于UIView对象
_mySwitch = [[UISwitch alloc]init];
//苹果官方控件的位置设置
//位置 x y 的值可以改变 但是 宽度 高度 无法改变 就是你设置的那个80 40 无效 iOS认为开关的宽高是固定的,最好看
_mySwitch.frame = CGRectMake(100, 100, 80, 40);
_mySwitch.backgroundColor = [UIColor blueColor];
//开关的状态设置 YES 开启状态
//可以1.用点语法方式做值
_mySwitch.on = YES;
//也可以使用set函数
[_mySwitch setOn:YES];
//还有一个 设置开关状态的
//setOn:<#(BOOL)#> animated:<#(BOOL)#>
//p1:状态设置 p2:是否开启动画效果
[_mySwitch setOn:YES animated:YES];
//设置开启状态的风格颜色
[_mySwitch setOnTintColor:[UIColor redColor]];
//改变开关圆钮的颜色 Thumb:拇指
[_mySwitch setThumbTintColor:[UIColor greenColor]];
//设置整体风格颜色
[_mySwitch setTintColor:[UIColor greenColor]];
//向开关控件添加一个事件函数 : addTarget
//p1:函数实现对象 p2:函数对象 p3:事件响应时的事件类型
//UIControlEventValueChanged: 状态发生变化时会触发
//怎么知道开关时开启还是关闭状态? 所以要加一个参数 这里就要加冒号 @selector(swChange:)
[_mySwitch addTarget:self action:@selector(swChange) forControlEvents:UIControlEventValueChanged];
//重要的一步 每次都要把效果加到视图中去
[self.view addSubview:_mySwitch];
}
//参数传入开关对象本身
- (void)swChange:(UISwitch *) sw
{
//on表示当前结束的状态 :
//如果之前是开关关闭,按一下开关,调用这个函数 开关就变成了开启状态
if ( sw.on == YES ){
NSLog(@"开关被打开");
}else{
NSLog(@"开关被关闭");
}
NSLog(@"开关状态发生变化");
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end