首页 > 代码库 > UI: UISwitch 创建及使用开关 定制开关

UI: UISwitch 创建及使用开关 定制开关

1.UISwitch类提供一个开/关的用户控制.

- (void)viewDidLoad {    [super viewDidLoad];        self.mySwitch = [[UISwitch alloc]initWithFrame:CGRectMake(100, 100, 0, 0)];    [self.view addSubview:self.mySwitch];}
开关控件的预设状态是关闭。可以透过改变 UISiwtch 实例的 on 属性来改变。另外也可以呼叫 setOn 方法,如下: 
[self.mySwitch setOn:YES];
若希望在开关控件被打开或关闭时得到通知信息,就必须在你的类中,利用 UISwitch 的addTarget:action:forControlEvents:方法加上开关的 target。 
[self.mySwitch 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");    }}

2.

开关的定制主要有两个方法:
Tint Colors:可以应用在 UI 组件上,例如 UISwitch。tint 颜色会被应用在UI 组件当前颜色的 top 位置之上。例如,一个普通的 UISwitch,可以设置不同的颜色。当将 tint 颜色应用在 UI 组件上时,控件的原始颜色会被 tint 颜色最小化。
Images:开关有两个图片:
On Image:这个图片代表了开关的开状态.宽度是 77 points,高度是 22. 
Off Image:这个图片代表了开关的关状态.宽度是 77 points,高度是 22. (宽高度不一定了)

2.1 修改开关的 tint 颜色。可以通过使用 UISwitch 类的 3 个重要属性来完成: 

tinColor:这个 tint color 会被用在开关的 off 状态上。不幸的是,苹果没有将其名字用offTintColor :代替 tintColor。这个属性的类型是 UIColor。

thumbTintColor:这个 tint color 被用在开关的小圆钮上,这个属性是 UIColor。

onTintColor:这个 tint color 被用在开关的 on 状态上,这个属性也是 UIColor。 

 例子:

//将开关的 on-mode tint color 设置为红色,off-mode tint color 设置为棕色(brown),小圆钮的 tint color 则为绿色    _mySwitch.tintColor = [UIColor redColor];    _mySwitch.onTintColor = [UIColor greenColor];    _mySwitch.thumbTintColor = [UIColor brownColor];
//switch的开关图片    _mySwitch.onImage = [UIImage imageNamed:@"on"];    _mySwitch.offImage = [UIImage imageNamed:@"off"];

 

 

UI: UISwitch 创建及使用开关 定制开关