iOS开关按钮UISwitch控件

开关按钮UISwitch 
在ViewController.h里面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#import <UIKit/UIKit.h>
 
@interface ViewController : UIViewController{
 
  //定义一个开关控件
  //作用可以进行状态的改变
  //开,关:两种状态可以切换
  //所有UIKit框架库中的控件均已UI开头
  //苹果官方的控件都定义在UIKit框架库中
  UISwitch * _mySwitch;
 
}
 
@property(retain,nonatomic) UISwitch * mySwitch;
 
 
@end

在ViewController.m里面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#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的值可以改变(100,100)
  //宽度和高度值无法改变(80,40)写了也没有用的,不会起到作用的。默认的。
  _mySwitch.frame=CGRectMake(100, 200, 180, 40);
 
  //开关状态设置属性
  //YES:开启状态
  //NO:关闭状态
  _mySwitch.on=YES;
 
  //也可以使用set函数
  //[_mySwitch setOn:YES];
 
  //设置开关状态
  //p1:状态设置
  //p2:是否开启动画效果
  //[_mySwitch setOn:YES animated:YES];
 
  [self.view addSubview:_mySwitch];
 
  //设置开启状态的风格颜色
  [_mySwitch setOnTintColor:[UIColor orangeColor]];
 
  //设置开关圆按钮的风格颜色
  [_mySwitch setThumbTintColor:[UIColor blueColor]];
 
  //设置整体风格颜色,按钮的白色是整个父布局的背景颜色
  [_mySwitch setTintColor:[UIColor greenColor]];
 
  //向开关控件添加事件函数
  //p1:函数实现对象
  //p2:函数对象
  //p3:事件响应时的事件类型UIControlEventValueChanged状态发生变化时触发函数
  [_mySwitch addTarget:self action:@selector(swChange:) forControlEvents:UIControlEventValueChanged];
 
 
}
 
//参数传入开关对象本身
- (void) swChange:(UISwitch*) sw{
 
  if(sw.on==YES){
    NSLog(@"开关被打开");
  }else{
    NSLog(@"开关被关闭");
  }
}
 
- (void)didReceiveMemoryWarning {
  [super didReceiveMemoryWarning];
  // Dispose of any resources that can be recreated.
}
 
@end
posted @   孙富有(iOS工程师)  阅读(721)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
点击右上角即可分享
微信分享提示