1 #import "AppDelegate.h"
2
3 @interface AppDelegate ()
4 {
5 UISlider* lider;
6 }
7
8 @end
9
10 @implementation AppDelegate
11
12
13 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
14
15 self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
16 self.window.backgroundColor = [UIColor whiteColor];
17 [self.window makeKeyAndVisible];
18
19 #pragma mark - UISEGMENTEDCONTROL
20 // 创建,并初始化设置各个标题,有多少个标题就代表有多少个选项
21 UISegmentedControl* segmented = [[UISegmentedControl alloc]initWithItems:@[@"Demo1",@"Demo2",@"Demo3",@"Demo4"]];
22 // 设置位置及大小
23 [segmented setFrame:CGRectMake(10, 50, 300, 40)];
24 // 根据下标索引单独指定设置标题
25 [segmented setTitle:@"Demo3" forSegmentAtIndex:0];
26 // 根据下标索引单独指定设置图片
27 [segmented setImage:[UIImage imageNamed:@"lan.png"] forSegmentAtIndex:2];
28 // 指定索引插入选项并设置图片
29 [segmented insertSegmentWithImage:[UIImage imageNamed:@"inamgName"] atIndex:1 animated:YES];
30 // 指定索引插入选项并设置标题
31 [segmented insertSegmentWithTitle:@"Demo5" atIndex:3 animated:YES];
32 // 移除指定索引的选项
33 [segmented removeSegmentAtIndex:0 animated:YES];
34 // 设置指定索引的宽度
35 [segmented setWidth:10 forSegmentAtIndex:2];
36 // 设置指定选项中图片等,左上角的位置
37 [segmented setContentOffset:CGSizeMake(10.0, 10.0) forSegmentAtIndex:1];
38
39 // 获取指定索引选项的图片 imageForSegmentAtIndex
40 UIImageView* imageAtIndex = [[UIImageView alloc]initWithImage:[segmented imageForSegmentAtIndex:2]];
41 imageAtIndex.frame = CGRectMake(60, 100, 30, 30);
42 // UIImage* imageAtIndex = [[UIImage alloc]init];
43 // imageAtIndex = [segmented imageForSegmentAtIndex:2];
44
45 // 获取指定索引的标题 titleForSegmentAtIndex
46 UILabel* titleAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 30, 30)];
47 titleAtIndex.text = [segmented titleForSegmentAtIndex:1];
48 [self.window addSubview:titleAtIndex];
49
50 // 获取总选项数 segmented.numberOfSegments
51 UILabel* unmber = [[UILabel alloc]initWithFrame:CGRectMake(140, 100, 30, 30)];
52 unmber.text = [NSString stringWithFormat:@"%d",segmented.numberOfSegments];
53 [self.window addSubview:unmber];
54
55 // 获取指定索引选项的宽度widthForSegmentAtIndex:
56 UILabel* widthAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(180, 100, 70, 30)];
57 widthAtIndex.text = [NSString stringWithFormat:@"%f",[segmented widthForSegmentAtIndex:2]];
58 [self.window addSubview:widthAtIndex];
59 // 设置默认选择项索引
60 segmented.selectedSegmentIndex = 1;
61
62 // 设置标题颜色
63 segmented.tintColor = [UIColor redColor];
64
65 // 设置样式 (iOS7.0以后弃用了)
66 // segmented.segmentedControlStyle = UISegmentedControlStylePlain;
67 //UISegmentedControlSegmentCenter
68
69 // 设置在点击后是否恢复原样
70 segmented.momentary = YES;
71 // 是否可以连续点击
72 segmented.multipleTouchEnabled = YES;
73 // 设置指定索选项不可选
74 [segmented setEnabled:NO forSegmentAtIndex:4];
75
76 // 判断指定索引是否可选
77 BOOL enableFlag = [segmented isEnabledForSegmentAtIndex:3];
78 NSLog(@"%d",enableFlag);
79
80 // 移除所有选项
81 [segmented removeAllSegments];
82
83 /* UISegmentedControl控件的一些自定义样式 */
84 // 设置背景图片及状态
85 [segmented setBackgroundImage:[UIImage imageNamed:@"imageName1"] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
86 [segmented setBackgroundImage:[UIImage imageNamed:@"imageName2"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
87
88 // UITextAttributeTextColor UITextAttributeTextShadowColor UITextAttributeFont等iOS7.0以后被弃用 改用为 NSForegroundColorAttributeName NSFontAttributeName NSShadowAttributeName
89 //NSDictionary* dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor],UITextAttributeTextColor,[UIFont systemFontOfSize:15],UITextAttributeFont,[UIColor clearColor],UITextAttributeTextShadowColor, nil];
90 NSDictionary* dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor],NSForegroundColorAttributeName,[UIFont systemFontOfSize:15],NSFontAttributeName,[UIColor clearColor],NSShadowAttributeName, nil];
91 [segmented setTitleTextAttributes:dic forState:UIControlStateNormal];
92
93
94 // 监听事件
95 [segmented addTarget:self action:@selector(dian:) forControlEvents:UIControlEventValueChanged];
96
97 // 自定义UIBarButtonItem,
98 UIBarButtonItem* segButton = [[UIBarButtonItem alloc]initWithCustomView:segmented];
99 // 添加到导航栏中
100 // self.navigationItem.rightBarButtonItem = segButton;
101
102 // 添加到视图上
103 [self.window addSubview:segmented];
104
105
106 #pragma mark - UISLIDER
107 // UISlider---滑杆,UISlider不可以改变高度
108 // 新建slider 并初始化位置及大小,注意:UISlider的高度可以随便设置,不可以为0,为0时滑块滑不动
109
110 lider = [[UISlider alloc]initWithFrame:CGRectMake(20, 150, 180, 30)];
111 // 设置背景颜色
112 lider.backgroundColor = [UIColor purpleColor];
113 // 不透明度
114 lider.alpha = 0.9;
115 // 设置标签
116 lider.tag = 1;
117
118 /* 创建完毕的同时我们要设置好滑块的范围,如果你没有设置,那么会使用默认的0.0到1.0之间的值
119 UISlider提供了两个属性来设置范围:minimumValue和maximumValue
120 */
121 // 设置lider所能滑动到的最小值(下限)
122 lider.minimumValue = 0;
123 // 设置lider所能滑动到的最大值(上限)
124 lider.maximumValue = 50;
125 // 同时你也可以为滑块设定一个当前值(初始值)
126 lider.value = 25;
127 // [lider setValue:25 animated:YES];
128
129 // 得到slider的值
130 float value = lider.value;
131
132 // 设置了会减小滚动区域的宽度,但整个slider的宽度不变
133 lider.minimumValueImage = [UIImage imageNamed:@"设置slider已滑过的背景图片"];
134 lider.maximumValueImage = [UIImage imageNamed:@"设置slider为滑动的背景图片"];
135
136 // 设置响应Slider的响应方法
137 [lider addTarget:self action:@selector(sliderValueChange:) forControlEvents:UIControlEventValueChanged];
138 // 默认值为YES,设置为YES只要滑块滚动就会触发change方法,设置为NO只要当滑块停止移动时才会触发change方法
139 lider.continuous = YES;
140
141 #pragma mark - 滑动条
142 /* 滑动条 */
143 /* 两端添加图片:滑块可以在任何一段显示图像。添加图像后会导致滑动条缩短,所以记得要在创建的时候增加滑块的宽度来适应图像 */
144 // 设置最小区域的图片
145 [lider setMinimumTrackImage:[UIImage imageNamed:@"设置滑块已滑过的滑动条背景图片,最好宽度和slider一样"] forState:UIControlStateNormal];
146 // 设置最大区域的图片
147 [lider setMaximumTrackImage:[UIImage imageNamed:@"设置滑块未滑过的滑动条背景图片,最好宽度和slider一样"] forState:UIControlStateNormal];
148 /* 你可以根据滑块的各种不同状态显示不同的图像,下面是可用状态
149 UIControlStateNormal // 正常
150 UIControlStateHighlighted // 高亮
151 UIControlStateDisabled // 禁用
152 UIControlStateSelected // 选择
153 */
154 // 得到当前滑块已滑过的图片,如果有的话
155 UIImage* image = [[UIImage alloc]init];
156 image = lider.currentMinimumTrackImage;
157 // 得到当前滑块未滑过的图片,如果有的话
158 image = lider.currentMaximumTrackImage;
159 // 设置滑块已滑过的滑条颜色,如果设置了左边的图片就不会显示
160 lider.minimumTrackTintColor = [UIColor redColor];
161 // 设置滑块未滑过的滑条颜色,如果设置了右边的图片就不会显示
162 lider.maximumTrackTintColor = [UIColor greenColor];
163
164 #pragma mark - 滑动块
165 /* 滑动块 */
166 // 普通状态
167 [lider thumbImageForState:UIControlStateNormal];
168 // 设置高亮状态的滑块样式
169 [lider setThumbImage:[UIImage imageNamed:@"设置滑块样子的图片"] forState:UIControlStateHighlighted];
170 // 设置滑块的颜色,如果设置了滑块的样式图片就不会显示
171 lider.thumbTintColor = [UIColor greenColor];
172
173
174 // 添加到父视图
175 [self.window addSubview:lider];
176 // 添加到导航栏
177 // [self.navigationItem.titleView addSubview:lider];
178
179
180
181 #pragma mark - UISWITCH
182 // 创建switc 并初始化设置位置及大小
183 UISwitch* switc = [[UISwitch alloc]initWithFrame:CGRectMake(20, 220, 100, 100)];
184 // 设置背景颜色
185 switc.backgroundColor = [UIColor whiteColor];
186 // 设置UISwitch的初始化状态,设置初始化为NO的一边
187 switc.on = YES;
188 [switc setOn:YES animated:YES];
189 // 设置响应事件
190 [switc addTarget:self action:@selector(switchIsChange:) forControlEvents:UIControlEventValueChanged];
191
192 // 开关控件关闭状态边框颜色、(外部颜色)
193 switc.tintColor = [UIColor redColor];
194 // 开关控件切换槽颜色
195 switc.onTintColor = [UIColor greenColor];
196 // 开关控件圆按钮颜色
197 switc.thumbTintColor = [UIColor purpleColor];
198
199 // 设置控件关闭状态图片
200 switc.onImage = [UIImage imageNamed:@"on"];
201 // 设置控件打开状态图片
202 switc.offImage = [UIImage imageNamed:@"off"];
203
204 // 添加到视图
205 [self.window addSubview:switc];
206
207 return YES;
208 }
209 // UISegmentedControl 响应事件
210 - (void)dian:(UISegmentedControl*)segment{
211 NSInteger index = segment.selectedSegmentIndex;
212 switch (index) {
213 case 0:{
214 NSLog(@"Dome1");
215 break;
216 }case 1:{
217 NSLog(@"Dome2");
218 break;
219 }case 2:{
220 NSLog(@"Dome3");
221 break;
222 }case 3:{
223 NSLog(@"Dome4");
224 break;
225 }
226 default:
227 break;
228 }
229 }
230 // UISlider 响应事件
231 - (void)sliderValueChange:(UISlider*)sl{
232 NSLog(@"UISlider........");
233 if ([sl isEqual:lider]) {
234 NSLog(@"ValureUISlider.......");
235 }
236 }
237 // UISwitch 响应事件
238 - (void)switchIsChange:(UISwitch*)sw{
239 NSLog(@"UISwitch......");
240 if (sw.isOn) {
241 NSLog(@"The switch is turned on");
242 }else{
243 NSLog(@"The switch is turned off");
244 }
245 }