IOS:UI设计之UISegmentedControl相关基础

  作用:分段控件,页面的切换等等

  它们常用于在不同类别的信息之间的选择,或在不同的应用屏幕之间切换。

  下面是基本属性和基本方法的使用:

  NSArray *array = [NSArray arrayWithObjects:@"搜索",@"音乐",@"视频",@"小说",nil];  //创建一个数组

  UISegmentedControl *segmentedCont = [[UISegmentedControl alloc]initWithItems:array];  //初始化UISegmentedControl,并添加数组array,并根据数组生成相应的分栏数目

  segmentCont.frame = CGRestMake(x,y,w,h);    //设置frame

  segmentCont.segmentedControlStyle = UISegmentedControlStyleBezeled;  //设置分栏的样式

    IOS7系统环境下的显示样式

                       UISegmentedControlStyleBar

                       UISegmentedControlStylePlain

                       UISegmentedControlStyleBordered

        //如果你用的是IOS7系统的模拟器,你是会发现:不管你采用以上哪种样式,它们显示出来的效果都是一样的,但是,在IOS6上,它们显示的效果是不一样的,由于小编没有IOS6系统的模拟器,所以没有截图,这个就留给读者自己来体验

  segmentedCont.tintColor = [UIColor  redColor]; 

    //设置它的颜色,不过这个色彩只对它的UISegmentedControlStyleBarUISegmentedControlStyleBezeled样式有用

  segmentedCont.selectedSegmentIndex = 2;    //设置默认选择项索引 0,1,2,3....

  segmentedCont.momentary = YES;        //设置在点击后是否恢复原样

        //个人认为以下几个插入索引项的基本方法并不常用,了解便可以

  [segmentedCont setTitle:@"two" forSegmentAtIndex:2];  //设置指定索引的题目

  [segmentedCont setImage:[UIImage imageNamed:@"name.png"] forSegmentAtIndex:3];  //设置指定索引的图片,图片需要选择适合大小的

  [segmentedCont insertSegmentWithImage:[UIImage imageNamed:@"name1.png"] atIndex:2 animated:NO];  //在指定索引插入一个选项并设置图片

  [segmentedCont insertSegmentWithTitle:@"插入" atIndex:3 animated:NO];  //在指定索引插入一个选项并设置题目 

  [segmentedCont removeSegmentAtIndex:0 animated:NO];    //移除指定索引的选项

  [segmentedCont setWidth:70.0 forSegmentAtIndex:2];      //设置指定索引选项的宽度

  [segmentedControl setContentOffset:CGSizeMake(10.0,10.0) forSegmentAtIndex:3];  //设置选项中图片等的左上角的位置

  

    //获取指定索引选项的图片imageForSegmentAtIndex:  

  UIImageView *imageForSegmentAtIndex = [[UIImageView alloc]initWithImage:[segmentedCont imageForSegmentAtIndex:1]];  

  imageForSegmentAtIndex.frame = CGRectMake(x, y, w, h);

    

        //获取总选项数segmentedControl.numberOfSegments  

  UILabel *numberOfSegments = [[UILabel alloc]initWithFrame:CGRectMake(x, y, w, h)];  

  numberOfSegments.text = [NSString stringWithFormat:@"%d",segmentedCont.numberOfSegments];

      //获取指定索引选项的宽度widthForSegmentAtIndex:  

     UILabel *widthForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(x, y, w, h)];  

     widthForSegmentAtIndex.text = [NSString stringWithFormat:@"%f",[segmentedCont widthForSegmentAtIndex:2]]; 

  

  [segmentedCont setEnabled:NO forSegmentAtIndex:4];    //设置指定索引选项不可选 

  BOOL enableFlag = [segmentedCont isEnabledForSegmentAtIndex:4];    //判断指定索引选项是否可选

  

      //添加委托方法

  segmentedCont addTarget:self action:@selector(segmentAction:)  forControlEvents:UIControlEventsValueChanged];

          //具体委托方法实例:

-(void)segmentAction:(UISegmentedControl *)SC

{

  NSInteget Index = SC.selectedSegmentIndex;    //获取索引值

  NSLog(@"Index:%i",Index);

  switch(Index){            //判断选中的索引值

      case 0:

      {//响应的事件};

        break;

      case 1:

      {//响应的事件};

        break;

      case 2:

      {//响应的事件};

        break;

      case 3:

      {//响应的事件};

        break;

      default:

        break;

          }

}

(可能学得比较浅,大家要是有补充可以留言,有问题的大家一起探讨下,可以私下联系:QQ790444804    微信:hgwchihuo

                                                -------我是快乐的小尾巴`(*∩_∩*)′)

原文地址:https://www.cnblogs.com/welcometheday/p/4483650.html