主要内容:UIControl及其子类(UISegmentedControl、UISlider、UIImageView的使用)
一、UISegmentedControl(分段控件)的用法
示例:
// 创建对象
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:@[@“登录”, @“注册”, @“找回密码”]]; // 初始化时加入item
// 设置大小和位置
segmentedControl.frame = CGRectMake(20, 20, 280, 30);
// 设置选中的颜色
segmentedControl.tintColor = [UIColor redColor];
// 设置默认选中项,一般是从0开始
segmentedControl.selectedSegmentedIndex = 1;
// 设置样式
segmentedControl.segmentedControlStyle = UISegmentControlStylePlain;
/*
typedef NS_ENUM(NSInteger, UISegmentedControlStyle) {
UISegmentedControlStylePlain, // large plain
UISegmentedControlStyleBordered, // large bordered
UISegmentedControlStyleBar, // small button/nav bar style.tintable
UISegmentedControlStyleBezeled, // DEPRECATED. Do not use this style.
};
*/
// 设置点击后是否回归原样,默认是NO,不恢复
segmentedControl.momentary = NO;
// 根据Index设置名称
[segmentedControl setTitle:@"NO1" forSegmentAtIndex:0];
[segmentedControl setTitle:@"NO2" forSegmentAtIndex:1];
[segmentedControl setTitle:@"NO3" forSegmentAtIndex:2];
[segmentedControl setTitle:@"NO5" forSegmentAtIndex:3];
// 根据索引位置图片
[segmentedControl setImage:[UIImage imageNamed:@“b.jpg”] forSegmentAtIndex:2];
/ / 在指定位置插入一个,并使用动画
[segmentedControl insertSegmentWithTitle:@"KO" atIndex:2 animated:YES];
// 指定索引移除一个,使用动画
[segmentedControl removeSegmentAtIndex:1 animated:YES];
// 设置指定索引位置的宽度
[segmentedControl setWidth:100 forSegmentAtIndex:1];
// 根据索引设置文字的位置
[segmentedControl setContentOffset:CGSizeMake(5.0, -5) forSegmentAtIndex:1];
// 获取指定索引上显示的文字 NO1
NSLog(@"%@", [segmentedControl titleForSegmentAtIndex:0]);
// 获取总共有多少项
NSLog(@"%u", segmentedControl.numberOfSegments);
// 根据索引获取那一项的宽度
NSLog(@"%f", [segmentedControl widthForSegmentAtIndex:1]);
// 判断索引项是否可选
NSLog(@"%i", [segmentedControl isEnabledForSegmentAtIndex:2]);
// 设置索引项不可选
[segmentedControl setEnabled:NO forSegmentAtIndex:2];
// 添加监听事件
[segmentedControl addTarget:self action:@selector(segmentedControlAction:) forControlEvents:UIControlEventValueChanged];
// 移除其中全部项
[segmentedControl removeAllSegments];
// 添加到View上,并释放内存
[self.view addSubview:segmentedControl];
[segmentedControl release];
segmentedControl = nil;
#pragma mark - 实现oneSegmentedControl的监听事件
- (void)segmentedControlAction:(UISegmentedControl *) sender {
// 获取当前的选中项的索引值
NSUInteger index = sender.selectedSegmentIndex;
// 判断索引值
switch (index) {
case 0:
NSLog(@"第一个选项被选中");
break;
case 1:
NSLog(@"第二个选项被选中");
break;
case 2:
NSLog(@"第三项被选中");
break;
case 3:
NSLog(@"第四项被选中");
break;
default:
break;
}
}
二、UISlider滑竿
UISlider是iOS中的滑块控件
通常用于控制视频播放控制音乐等
示例:
// 创建对象
UISlider *slider = [[UISlider alloc] init];
// 设置位置和大小
slider.frame = CGRectMake(20, 50, 260, 30);
// 设置最小值
slider.minimumValue = 0;
// 设置最大值
slider.maximumValue = 200;
// 设置初始值,即小圆球初始在的位置(注意:如果要设置初始值的话,应该再定义了最大值、最小值之后再定义,否则没有效果)
slider.value = 30;
// 设置背景颜色
slider.backgroundColor = [UIColor redColor];
// 设置透明度
slider.alpha = 0.6;
// 设置标签,常用于委托
slider.tag = 1001;
// 给slider添加事件
[slider addTag:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChange];
// 自定义slider
1、先清除背景色
slider.background = [UIColor clearColor];
2、添加最小值、最大值图片
[slider setMinimumTrackImage:[UIImage imageNamed:@“min.png”]];
[slider setMaximumTrackImage:[UIImage imageNamed:@“max.png”]];
// 添加到View上并释放内存
[self.view addSubview:slider];
[slider release];
slider = nil;
三、UIControl的作用
UIControl是所有控制控件(如UIButton、UISlider、UISegmentedControl等)的基类
注意:只要根控制有关的控件都是继承与该类
核心功能:为控制控件通过addTarget:action:forControlEvents:方法来添加事件
通过removeTarget:action:forControlEvents:来移除事件
四、继承关系图