优秀工程师之—UISegmentedControl

来源:互联网 发布:学安卓软件开发教程 编辑:程序博客网 时间:2024/05/24 20:06

UISegmentedControl类似于UIButton,它可以提供多个选择操作,响应事件,但是有很大的局限性,我们更多的是使用自定义的,先介绍下它的基本用法:

直接上代码:


  1. //初始化segmentedArray中要显示的标题
  2. NSArray *segmentedArray = [[NSArrayalloc]initWithObjects:@"1",@"2",@"3",@"4",nil];   
  3. //初始化UISegmentedControl,并且添加标题   
  4. UISegmentedControl *segmentedControl = [[UISegmentedControlalloc]initWithItems:segmentedArray];   
  5. segmentedControl.frame = CGRectMake(20.0,……)  
  6. // 设置默认选择项索引   
  7. segmentedControl.selectedSegmentIndex = 2;  
  8. segmentedControl.tintColor = [UIColor redColor];   
  9. // segmentedControl基本样式  
  10. segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;  
  11. segmentedControl.segmentedControlStyle = UISegmentedControlStyleBordered;  
  12. segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;  
  13. segmentedControl.segmentedControlStyle = UISegmentedControlStyleBezeled;  
  14.   
  15.   
  16. // 设置在点击后是否恢复原样      
  17.  segmentedControl.momentary = YES;  
  18.  [segmentedControl setTitle:@"two" forSegmentAtIndex:1];//设置指定索引的题目   
  19.  [segmentedControl setImage:[UIImage imageNamed:@"btn_jyy.png"] forSegmentAtIndex:3];//设置指定索引的图片   
  20. // 在指定索引插入一个选项并设置图片  
  21.  [segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"mei.png"] atIndex:2 animated:NO];  
  22. // 在指定索引插入一个选项并设置题目   
  23.  [segmentedControl insertSegmentWithTitle:@"insert" atIndex:3 animated:NO];  
  24.   
  25. // 移除指定索引的选项   
  26.  [segmentedControl removeSegmentAtIndex:0 animated:NO];  
  27. // 设置指定索引选项的宽度   
  28.  [segmentedControl setWidth:70.0 forSegmentAtIndex:2];  
  29. // 设置选项中图片等的左上角的位置   
  30.  [segmentedControl setContentOffset:CGSizeMake(10.0,10.0) forSegmentAtIndex:4];  
  31.   
  32.  //获取指定索引选项的图片imageForSegmentAtIndex:   
  33.  UIImageView *imageForSegmentAtIndex = [[UIImageViewalloc]initWithImage:[segmentedControl imageForSegmentAtIndex:1]];   
  34.  imageForSegmentAtIndex.frame = CGRectMake(60.0120.030.030.0);  ;  
  35.   
  36.  //获取指定索引选项的标题titleForSegmentAtIndex   
  37.  UILabel *titleForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(100.0160.030.030.0)];   
  38.  titleForSegmentAtIndex.text = [segmentedControl titleForSegmentAtIndex:0];   
  39.   
  40.  //获取总选项数segmentedControl.numberOfSegments   
  41.  UILabel *numberOfSegments = [[UILabel alloc]initWithFrame:CGRectMake(140.0170.030.030.0)];   
  42.  numberOfSegments.text = [NSString stringWithFormat:@"%d",segmentedControl.numberOfSegments];  
  43.   
  44.  //获取指定索引选项的宽度widthForSegmentAtIndex:   
  45.  UILabel *widthForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(180.0210.070.030.0)];   
  46.  widthForSegmentAtIndex.text = [NSString stringWithFormat:@"%f",[segmentedControl widthForSegmentAtIndex:2]];   
  47.    
  48. // [segmentedControl setEnabled:NO forSegmentAtIndex:4];//设置指定索引选项不可选   
  49. // BOOL enableFlag = [segmentedControl isEnabledForSegmentAtIndex:4];//判断指定索引选项是否可选   
  50.    [mySegmentedControladdTarget:selfaction:@selector(didClicksegmentedControlAction:)forControlEvents:UIControlEventValueChanged];    
  51.   
  52. oid)didClicksegmentedControlAction:(UISegmentedControl *)Seg{  
  53.  NSInteger Index = Seg.selectedSegmentIndex;  
  54.  NSLog(@"Index %i", Index);  
  55.  switch (Index) {  
  56.      case 0:  
  57.          [self selectmyView1];  
  58.          break;  
  59.      case 1:  
  60.          [self selectmyView2];  
  61.          break;  
  62.      case 2:  
  63.          [self selectmyView3];  
  64.          break;  
  65.      case 3:  
  66.          [self selectmyView4];  
  67.          break;  
  68. …………………………….  
  69.      default:  
  70.          break;  
  71.  }  

原创粉丝点击