UIControl的两个子类 -- UISegmentedControl UISlider
来源:互联网 发布:实惠猪软件 编辑:程序博客网 时间:2024/06/16 14:46
UISegmentedControl – 分段控件
分段控件的初始化可用数组 但数组中的对象必须是字符串 或者 图片
如果选用图片初始化 必须使用镂空图
// 用字符串组成的数组初始化 NSArray *stringArray = @[@"第一段",@"第二段",@"第三段"];// 分段控件的初始化 UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:stringArray];// 分段控件添加至视图上 segmentedControl.frame = CGRectMake(20, 100, 300, 50); segmentedControl.backgroundColor = [UIColor greenColor]; [self.view addSubview:segmentedControl]; [segmentedControl release];// 设置默认选中(从0开始) segmentedControl.selectedSegmentIndex = 1;// 修改选中的颜色 segmentedControl.tintColor = [UIColor brownColor];// 修改中间段的宽度 [segmentedControl setWidth:200 forSegmentAtIndex:1];
// 用图片组成的数组初始化// 创建图片数组 UIImage *image1 = [UIImage imageNamed:@"01-refresh"]; UIImage *image2 = [UIImage imageNamed:@"02-redo"]; UIImage *image3 = [UIImage imageNamed:@"03-loopback"]; NSArray *imageArray = @[image1, image2, image3];// 创建分段控件 并添加到视图上 UISegmentedControl *segmentedControlImage = [[UISegmentedControl alloc] initWithItems:imageArray]; segmentedControlImage.backgroundColor = [UIColor orangeColor]; segmentedControlImage.frame = CGRectMake(40, 300, 300, 50); segmentedControlImage.tintColor = [UIColor purpleColor]; segmentedControlImage.selectedSegmentIndex = 0; [self.view addSubview:segmentedControlImage]; [segmentedControlImage release];// 添加一个点击事件// 选取UIControlEventValueChanged 实际上是检测了索引的变化 [segmentedControlImage addTarget:self action:@selector(segmentedAction:) forControlEvents:UIControlEventValueChanged];// 实现一个需求: 点击分段控件的不同按钮 视图颜色随之改变// 将三控制器设置为根视图控制器的子控制器(应将三控制器类设置根视图控制器的属性 方便取用) self.grayVC = [[GrayViewController alloc] init]; [self addChildViewController:self.grayVC]; [self.view addSubview:self.grayVC.view]; [_grayVC release]; self.blueVC = [[BlueViewController alloc] init]; [self addChildViewController:self.blueVC]; [self.view addSubview:self.blueVC.view]; [_blueVC release]; self.greenVC = [[GreenViewController alloc] init]; [self addChildViewController:self.greenVC]; [self.view addSubview:self.greenVC.view]; [_greenVC release]; // 最前面的应该是segment // 然后是默认选中按钮对应的视图 [self.view bringSubviewToFront:self.grayVC.view]; [self.view bringSubviewToFront:segmentedControlImage];}
实现分段控件添加的方法:
- (void)segmentedAction:(UISegmentedControl *)segmentedControl{ // 需求 判断出 点击了哪个分段按钮 // 每个分段按钮 控制一个界面 每个界面是一个控制器来控制 并且可以切换界面 NSLog(@"点了第%ld个",segmentedControl.selectedSegmentIndex); // 通过索引切换不同的界面 switch (segmentedControl.selectedSegmentIndex) { case 0: [self.view insertSubview:self.grayVC.view belowSubview:segmentedControl]; break; case 1: [self.view insertSubview:self.greenVC.view belowSubview:segmentedControl]; break; case 2: [self.view insertSubview:self.blueVC.view belowSubview:segmentedControl]; break; default: break; }
UISlider – 滑块控件
初始化 和 属性
// 初始化 UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(50, 50, 300, 30)];// 设置背景色 slider.backgroundColor = [UIColor grayColor];// 设置最小值轨迹颜色 [slider setMinimumTrackTintColor:[UIColor greenColor]];// 设置最大值轨迹颜色 [slider setMaximumTrackTintColor:[UIColor purpleColor]];// 设置拖动按钮颜色 [slider setThumbTintColor:[UIColor brownColor]];// 设置图片 [slider setMinimumValueImage:[UIImage imageNamed:@"01-refresh"]]; [slider setMaximumValueImage:[UIImage imageNamed:@"03-loopback"]]; [slider setThumbImage:[UIImage imageNamed:@"01-refresh"] forState:UIControlStateNormal]; [slider setThumbImage:[UIImage imageNamed:@"02-redo"] forState:UIControlStateHighlighted]; [slider setThumbImage:[UIImage imageNamed:@"03-loopback"] forState:UIControlStateSelected];// 设置滑块的初值 最大值 最小值// 如果想设置初始位置 需要先把最大 最小值设置上// 再给初值 才会发生变化 slider.minimumValue = 0; slider.maximumValue = 10; slider.value = 10; [self.view addSubview:slider]; [slider release];
给滑块控件添加方法
// 添加滑动事件 [slider addTarget:self action:@selector(sliderClick:) forControlEvents:UIControlEventValueChanged];
UIImageView的属性
在给滑块控件实现方法前 先了解一下UIImageView的一些属性
// imageView的初始化 UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 500)]; imageView.backgroundColor = [UIColor purpleColor]; imageView.tag = 1000; [self.view addSubview:imageView]; [imageView release];// 构建一个图片的数组(数组中元素多的话可以用这种循环方法) NSMutableArray *arr = [NSMutableArray array]; for (int i = 1; i <= 10; i++) { // 把图片的名字拼接出来 NSString *imageName = [NSString stringWithFormat:@"%d.jpg",i]; // 初始化每一张图片 UIImage *image = [UIImage imageNamed:imageName]; // 把图片添加到数组里 [arr addObject:image]; }// 设置imageView的播放动画的数组 imageView.animationImages = arr;// 设置时间间隔(播放完整一次10秒) imageView.animationDuration = 10;// 设置重复次数(零代表无限次) imageView.animationRepeatCount = 0;// 让动画开始 [imageView startAnimating];
实现滑块的方法
// 实现滑动事件- (void)sliderClick:(UISlider *)slider{ UIImageView *imageView = (UIImageView *)[self.view viewWithTag:1000]; if (slider.value == slider.maximumValue) { // 为了美观 停止的时候 添加一张占位图 [imageView stopAnimating]; imageView.image = [UIImage imageNamed:@"005.jpg"]; }else{ imageView.animationDuration = slider.value; [imageView startAnimating]; }}
0 0
- UIControl的两个子类 -- UISegmentedControl UISlider
- 08-1 UIControl 及其子类 UISegmentedControl 、UISlider
- iOS编程--------UIControl的作用及其子类UISegmentedControl的使用 / UISlider的使用 / UIImageView的使用
- UI一揽子计划 6 (UIControl、UISegmentedControl、UIImageView插入数组图片、UISlider)
- iOS个人整理10-UIControl与子类:UISlider,UISegmentControl
- UISegmentedControl UISlider
- UI----UIslider 和UIcontrol的属性
- UIControl 子类的简单使用
- UIControl和它的子类
- 事件处理, UIControl的子类
- UISegmentedControl + UISlider +UIImageView的动画效果
- UISegmentedControl、UISwitch、UISlider
- UIControl 子类的一个设计思路
- 两个常用的UIControl前缀
- iOS开发之八:UISlider、UISegmentedControl、UIPageControl的使用
- UISegmentedControl,UISlider,UISwitch,代码截屏,UIStepper的简单使用
- AVAudioPlayer&UIImageView的Tomcat连续播放&UISlider&UISegmentedControl
- UI - UISegmentedControl、UISlider、UIImageView、UISwitch
- Excel单元格分列
- UI第六天::UIControl及其⼦类
- Excel冻结n行m列
- C++模板
- c++OOP程序设计读书笔记之二:程序设计类别
- UIControl的两个子类 -- UISegmentedControl UISlider
- GDAL编译(2.x与1.x版本通用)
- BZOJ 2561: 最小生成树(最小割)
- PMI-ACP敏捷项目管理微课内容分享-敏捷宣言&角色(20151117 丁仿)
- IO测试工具 iometer 和pdtest的对比
- Fragment对象的使用(一)
- Android键盘“enter”键设置为“下一项”失效解决办法
- DIV CSS display (block none inline)属性的用法教程
- asn1学习笔记