iOS开发-Day27UISwitch&UISlider&UIStepper&UISegmentedControl
2015-08-20 15:37
736 查看
1、UISwitch
2、UISlider
3、UIStepper
4、UISegmentedControl
1.UISwitch的初始化 UISwitch *switchView = [[UISwitch alloc] initWithFrame:CGRectMake(54.0f, 16.0f, 100.0f, 28.0f)]; 2.设置UISwitch的初始化状态 switchView.on = YES;//设置初始为ON的一边 3.UISwitch事件的响应 [switchView addTarget:self action:@selector(switchAction:) forControlEvents:UIControlEventValueChanged];
2、UISlider
UISlider *slider = [[UISlider alloc]initWithFrame:CGRectMake(0, 0, 200, 20)]; //初始化 slider.minimumValue = 0;//指定可变最小值 slider.maximumValue = 100;//指定可变最大值 slider.value = 50;//指定初始值 [slider addTarget:self action:@selector(updateValue:) forControlEvents:UIControlEventValueChanged];//设置响应事件 [self.view addSubview:slider]; -(IBAction)updateValue:(id)sender{ //添加响应事件 float f = slider.value; //读取滑块的值 } //改变样式(图片) slider.backgroundColor = [UIColorclearColor]; [slider setMinimumTrackImage:[UIImageimageNamed:@"max.png"] forState:UIControlStateNormal]; [slider setMaximumTrackImage:[UIImageimageNamed:@"min.png"] forState:UIControlStateNormal];
3、UIStepper
UIStepper *stepper = [[UIStepper alloc] init];//初始化 stepper.tag = 10;//设置唯一标识 stepper.center = CGPointMake(160, 240);// stepper.minimumValue = 1; //设置最小值 stepper.maximumValue = 30; //设置最大值 stepper.stepValue = 2; //每次递增2 stepper.value = 15; //初始值 [stepper setWraps:YES]; //是否循环 [stepper addTarget:self action:@selector(doTest) forControlEvents:UIControlEventValueChanged] [self.view addSubview:stepper];
4、UISegmentedControl
//1.初始化UISegmentedControl SArray *segmentedArray = [[NSArray alloc]initWithObjects:@"1",@"2",@"3",nil]; UISegmentedControl *segmentedTemp = [[UISegmentedControl alloc]initWithItems:segmentedArray]; self.segmentedControl = segmentedTemp; segmentedControl.frame = CGRectMake(10.0, 10.0, 300.0, 29.0); //2.常用属性及设置方法如下: //设置指定索引的题目 [segmentedControl setTitle:@"1" forSegmentAtIndex:1]; //设置指定索引的图片 [segmentedControl setImage:[UIImage imageNamed:@"home.png"] forSegmentAtIndex:2]; //在指定索引插入一个选项并设置图片 [segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"more.png"] atIndex:2 animated:NO]; //在指定索引插入一个选项并设置题目 [segmentedControl insertSegmentWithTitle:@"new" atIndex:3 animated:NO]; //移除指定索引的选项 [segmentedControl removeSegmentAtIndex:0 animated:NO]; //设置指定索引选项的宽度 [segmentedControl setWidth:60.0 forSegmentAtIndex:2]; //设置选项中图片等的左上角的位置 //[segmentedControl setContentOffset:CGSizeMake(10.0,10.0) forSegmentAtIndex:1]; //设置默认选择项索引 segmentedControl.selectedSegmentIndex = 2; //分段控件的颜色,只有样式为UISegmentedControlStyleBar的时候才有效果 segmentedControl.tintColor = [UIColor redColor]; //设置样式 segmentedControl.segmentedControlStyle = UISegmentedControlStyleBordered; //设置在点击后是否恢复原样 segmentedControl.momentary = NO; //设置指定索引选项不可选 [segmentedControl setEnabled:NO forSegmentAtIndex:3]; //判断指定索引选项是否可选 BOOL enableFlag = [segmentedControl isEnabledForSegmentAtIndex:3]; NSLog(@"%d",enableFlag); 3.分段控件点击事件: segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged]; 4.响应的事件: -(void)segmentAction:(UISegmentedControl *)Seg { NSInteger index = Seg.selectedSegmentIndex; switch (index) { case 0: NSLog(@"0 clicked."); break; case 1: NSLog(@"1 clicked."); break; case 2: NSLog(@"2 clicked."); break; case 3: NSLog(@"3 clicked."); break; case 4: NSLog(@"4 clicked."); break; default: break; } } //获取指定索引选项的图片imageForSegmentAtIndex: UIImageView *imageForSegmentAtIndex = [[UIImageView alloc]initWithImage:[segmentedControl imageForSegmentAtIndex:1]]; imageForSegmentAtIndex.frame = CGRectMake(60.0, 100.0, 30.0, 30.0); //获取指定索引选项的标题titleForSegmentAtIndex UILabel *titleForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(100.0, 100.0, 30.0, 30.0)]; titleForSegmentAtIndex.text = [segmentedControl titleForSegmentAtIndex:0]; //获取总选项数segmentedControl.numberOfSegments UILabel *numberOfSegments = [[UILabel alloc]initWithFrame:CGRectMake(140.0, 100.0, 30.0, 30.0)]; numberOfSegments.text = [NSString stringWithFormat:@"%d",segmentedControl.numberOfSegments]; //获取指定索引选项的宽度widthForSegmentAtIndex: UILabel *widthForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(180.0, 100.0, 70.0, 30.0)]; widthForSegmentAtIndex.text = [NSString stringWithFormat:@"%f",[segmentedControl widthForSegmentAtIndex:2]]; //IOS5以后,可以全局的设置一些控件的外观,分段控件就是其中一个(全局设置UISegmentedControl外观): //cap insets用来指定哪些区域是固定不变的,未制定的区域则会repeat UIImage *segmentSelected = [[UIImage imageNamed:@"bg_o.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(5, 5, 5, 5)]; UIImage *segmentUnselected = [[UIImage imageNamed:@"bg.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(5, 5, 5, 5)]; UIImage *segmentSelectedUnselected = [UIImage imageNamed:@"line.png"] ; UIImage *segUnselectedSelected = [UIImage imageNamed:@"line.png"] ; UIImage *segmentUnselectedUnselected = [UIImage imageNamed:@"line.png"]; //Segmente未选中背景 [[UISegmentedControl appearance] setBackgroundImage:segmentUnselected forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; //Segmente选中背景 [[UISegmentedControl appearance] setBackgroundImage:segmentSelected forState:UIControlStateSelected barMetrics:UIBarMetricsDefault]; //Segmente左右都未选中时的分割线 //BarMetrics表示navigation bar的状态,UIBarMetricsDefault 表示portrait状态(44pixel height),UIBarMetricsLandscapePhone 表示landscape状态(32pixel height) [[UISegmentedControl appearance] setDividerImage:segmentUnselectedUnselected forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; [[UISegmentedControl appearance] setDividerImage:segmentSelectedUnselected forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; [[UISegmentedControl appearance] setDividerImage:segUnselectedSelected forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault]; //字体 NSDictionary *textAttibutesUnSelected = [NSDictionary dictionaryWithObjectsAndKeys: [UIFont systemFontOfSize:18],UITextAttributeFont, [UIColor blackColor],UITextAttributeTextColor, [UIColor whiteColor],UITextAttributeTextShadowColor, [NSValue valueWithCGSize:CGSizeMake(1, 1)],UITextAttributeTextShadowOffset,nil]; NSDictionary *textAttibutesSelected = [NSDictionary dictionaryWithObjectsAndKeys: [UIFont systemFontOfSize:18],UITextAttributeFont, [UIColor whiteColor],UITextAttributeTextColor, [UIColor whiteColor],UITextAttributeTextShadowColor, [NSValue valueWithCGSize:CGSizeMake(0, 0)],UITextAttributeTextShadowOffset,nil]; [[UISegmentedControl appearance] setTitleTextAttributes:textAttibutesUnSelected forState:UIControlStateNormal]; [[UISegmentedControl appearance] setTitleTextAttributes:textAttibutesSelected forState:UIControlStateSelected];
相关文章推荐
- easy ui 表单元素input控件后面加说明(红色)
- android-UI组件实例大全(七)------Adapter类One之ListView
- easyui icon总结
- HBuilder快捷键
- PAT 1051. Pop Sequence (25)
- Hbuilder检测不到真机的解决方法
- CodeForces-447C DZY Loves Sequences
- 也谈kendoUI的grid.
- Android Call requires API level 11 (current min is 8)的解决方案
- iOS开发-Day26-UILabel&UIButton&UITextField
- LeetCode "Verify Preorder Sequence in Binary Search Tree"
- leetcode - Unique Paths
- serialVersionUID作用
- iOS开发:代码通用性以及其规范 第一篇(附带,自定义UITextView\进度条\双表显示\瀑布流 代码设计思路)
- UE4 Mac 使用Xcode编译教程
- [转]VS编译duilib项目时候的错误解决方法整理
- iOS开发-UIImageView的contentMode属性
- UIView的使用setNeedsDisplay
- LeetCode96_Unique Binary Search Trees(求1到n这些节点可以组成多少种不同的二叉查找树) Java题解
- UISegmentControl的属性和方法