UI控件 10 UISwitch控件详细解析 代码实战

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

猜你喜欢

转载自blog.csdn.net/teropk/article/details/81227007