UISegmentedControl的使用
UISegmentedControl是iOS中的分段控件。 每个segment都能被点击,相当于集成了若干个button。 通常我们会点击不同的segment来切换不同的view。
常用方法和属性
创建方法1:
// 初始化的数组中 必须是 字符串
NSArray *itemArray = @[@"第一段", @"第二段", @"第三段"];
// 分段按钮
//initWithItems:UISegmentedControl独有的初始化方法,用来创建多个分段
UISegmentedControl *segmentControl = [[UISegmentedControl alloc] initWithItems:itemArray];
segmentControl.frame = CGRectMake(20, 100, 300, 50);
segmentControl.backgroundColor = [UIColor orangeColor];
// 设置默认选中(索引从0开始)
segmentControl.selectedSegmentIndex = 1;
// 修改选中的颜色
segmentControl.tintColor = [UIColor grayColor];
// 修改中间段宽度
[segmentControl setWidth:200 forSegmentAtIndex:1];
[self.view addSubview:segmentControl];
[segmentControl release];
创建方法2:
// 如果选用 图片初始化 必须选用镂空图
UIImage *image1 = [UIImage imageNamed:@"01-refresh"];
UIImage *image2 = [UIImage imageNamed:@"02-redo"];
UIImage *image3 = [UIImage imageNamed:@"03-loopback"];
NSMutableArray *arr = [NSMutableArray arrayWithObjects:image1, image2, image3, nil];
segment.frame = CGRectMake(0, 20, 375, 50);
segment.tintColor = [UIColor orangeColor];
segment.selectedSegmentIndex = 1;
segment.backgroundColor = [UIColor cyanColor];
// 添加点击事件
// 选取ValueChanged 实际上是监测 索引的变化
[segment addTarget:self action:@selector(segmtAction:) forControlEvents:(UIControlEventValueChanged)];
[self.view addSubview:segment];
[segment release];
例题: 判断出 点击了哪个分段按钮, 每个分段按钮 控制一个界面 每个界面由一个控制器来控制 并且可以切换界面。
1.有几个segment就创建几个控制器
self.firstVC = [[FirstViewController alloc] init];
self.secondVC = [[SecondViewController alloc] init];
self.thirdVC = [[ThirdViewController alloc] init];
2.添加子控制器 并且显示视图
[self addChildViewController:self.firstVC];
[self.view addSubview:self.firstVC.view];
[self addChildViewController:self.secondVC];
[self.view addSubview:self.secondVC.view];
[self addChildViewController:self.thirdVC];
[self.view addSubview:self.thirdVC.view];
3.释放
[self.firstVC release];
[self.secondVC release];
[self.thirdVC release];
4.最前面的应该是segment,然后默认选中第一界面视图 firstVC.view
[self.view bringSubviewToFront:self.firstVC.view];
[self.view bringSubviewToFront:segment];
5.实现segment的点击事件
- (void)segmtAction:(UISegmentedControl *)segment
{
switch (segment.selectedSegmentIndex) {
case 0:
[self.view bringSubviewToFront:self.firstVC.view];
break;
case 1:
[self.view bringSubviewToFront:self.secondVC.view];
break;
case 2:
[self.view bringSubviewToFront:self.thirdVC.view];
break;
default:
break;
}
[self.view bringSubviewToFront:segment];
}
UISlider的使用
UISlider是iOS中的滑块控件。
通常用于控制视频播放进度,控制音量等。
它也是继承于UIControl,滑块提供了一系列连续的值,滑块停在不同的位置,获取到滑块上的值也不同。
常用属性:
// 初始化
UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(37.5, 100, 300, 30)];
slider.backgroundColor = [UIColor cyanColor];
// 设置轨迹颜色
[slider setMinimumTrackTintColor:[UIColor yellowColor]];
slider.maximumTrackTintColor = [UIColor purpleColor];
// 设置滑动按钮颜色(球)
slider.thumbTintColor = [UIColor grayColor];
// 设置最大值 和最小值 的图片
[slider setMinimumValueImage:[UIImage imageNamed:@"01-refresh"]];
[slider setMaximumValueImage:[UIImage imageNamed:@"03-loopback"]];
slider.selected = YES;
[slider setThumbImage:[UIImage imageNamed:@"03-loopback"] forState:(UIControlStateSelected)];
[slider setThumbImage:[UIImage imageNamed:@"02-redo"] forState:(UIControlStateNormal)];
[slider setThumbImage:[UIImage imageNamed:@"01-refresh"] forState:(UIControlStateHighlighted)];
// 设置滑块的初值 最大值 最小值
// 如果想设置初始位置 需要先把最大值 最小值设置上
// 再给初值 才会发生变化
slider.maximumValue = 10;
slider.minimumValue = 0;
slider.value = 2;
// 添加滑动事件
[slider addTarget:self action:@selector(sliderAction:) forControlEvents:(UIControlEventValueChanged)];
[self.view addSubview:slider];
[slider release];
UIImageView的使用
例题: ImageView动画(跑图)
silder控制 动画播放的时间间隔,并且 silder滑动到最大值 停止动画
self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake(37.5, 150, 300, 300)];
self.imageView.backgroundColor = [UIColor lightGrayColor];
[self.view addSubview:self.imageView];
[self.imageView release];
// 构建一个图片的数组
NSMutableArray *imageArr = [NSMutableArray array];
for (int i = 1; i < 9; i++) {
// 把图片的名字 拼接出来
NSString *imageName = [NSString stringWithFormat:@"%d",i];
// 初始化每一张图片
UIImage *image = [UIImage imageNamed:imageName];
// 把图片加到数组里
[imageArr addObject:image];
}
// 设置imageView播放动画的数组
self.imageView.animationImages = imageArr;
// 设置时间间隔(播放完整一次10秒)
self.imageView.animationDuration = 10;
// 设置重复次数(零 代表无限次)
self.imageView.animationRepeatCount = 0;
// 让动画开始
[self.imageView startAnimating];
实现动画效果:(使用上面创建的Slider)
- (void)sliderAction:(UISlider *)slider
{
NSLog(@"%.2f", slider.value);
// 为了美观 停止的时候 添加一张占位图
if (slider.value == slider.maximumValue) {
[self.imageView stopAnimating];
self.imageView.image = [UIImage imageNamed:@"8"];
}else {
self.imageView.animationDuration = slider.value;
[self.imageView startAnimating];
}
}
UIControl的作用
UIControl是所有控制控件(比如UIButton、UISlider、UISegmentedControl等)的基类。
只要跟控制有关的控件都是继承于该类。
UIControl的核⼼心功能:
为控制控件通过addTarget: action: forControlEvents: 方法来添加事件。
通过removeTarget: action: forControlEvents: 来移除事件。