UISegmentedControl的详细使用

11 篇文章 0 订阅
11 篇文章 0 订阅

UISegmentedControl的详细使用

 

当用户输入不仅仅是布尔值时,可使用分段控件(UISegmentedControl)。分段控件提供一栏按钮(有时称为按钮栏),但只能激活其中一个按钮。分段控件会导致用户在屏幕上看到的内容发生变化。它们常用于在不同类别的信息之间选择,或在不同的应用屏幕之间切换。下面介绍基本属性和基本方法的使用。

NSArray *segmentedArray =[[NSArrayalloc]initWithObjects:@"1",@"2",@"3",@"4",nil]; 

    //初始化UISegmentedControl  

   UISegmentedControl *segmentedControl =[[UISegmentedControlalloc]initWithItems:segmentedArray];  

   segmentedControl.frame = CGRectMake(20.0, 20.0, 250.0, 50.0); 

   segmentedControl.selectedSegmentIndex = 2;//设置默认选择项索引  

    segmentedControl.tintColor =[UIColor redColor];  

//有基本四种样式

   segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;//设置样式

 

    //segmentedControl.segmentedControlStyle = UISegmentedControlStyleBordered;//设置样式

  //segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;//设置样式

  //segmentedControl.segmentedControlStyle = UISegmentedControlStyleBezeled;//设置样式

 

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

    [segmentedControlsetTitle:@"two" forSegmentAtIndex:1];//设置指定索引的题目  

    [segmentedControl setImage:[UIImageimageNamed:@"btn_jyy.png"] forSegmentAtIndex:3];//设置指定索引的图片  

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

 

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

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

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

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

    

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

    UIImageView *imageForSegmentAtIndex=[[UIImageViewalloc]initWithImage:[segmentedControl imageForSegmentAtIndex:1]]; 

   imageForSegmentAtIndex.frame = CGRectMake(60.0, 120.0, 30.0, 30.0); ;

    

    //获取指定索引选项的标题titleForSegmentAtIndex 

    UILabel *titleForSegmentAtIndex =[[UILabel alloc]initWithFrame:CGRectMake(100.0, 160.0, 30.0, 30.0)]; 

    titleForSegmentAtIndex.text =[segmentedControl titleForSegmentAtIndex:0];  

    

    //获取总选项数segmentedControl.numberOfSegments  

    UILabel *numberOfSegments =[[UILabel alloc]initWithFrame:CGRectMake(140.0, 170.0, 30.0, 30.0)]; 

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

 

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

    UILabel *widthForSegmentAtIndex =[[UILabel alloc]initWithFrame:CGRectMake(180.0, 210.0, 70.0, 30.0)]; 

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

     

   // [segmentedControl setEnabled:NOforSegmentAtIndex:4];//设置指定索引选项不可选  

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

     [mySegmentedControladdTarget:selfaction:@selector(segmentAction:)forControlEvents:UIControlEventValueChanged]; //添加委托方法

//具体委托方法实例   

-(void)segmentAction:(UISegmentedControl *)Seg{

    NSInteger Index =Seg.selectedSegmentIndex;

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

    switch (Index) {

        case 0:

           [self selectmyView1];

            break;

        case 1:

           [self selectmyView2];

            break;

        case 2:

           [self selectmyView3];

            break;

        case 3:

           [self selectmyView4];

            break;

        case 4:

           [self selectmyView5];

            break;

        case 5:

            [self selectmyView6];

            break;   

        default:

            break;

    }

}

 

基本属性、方法如上,大家在实际开发中可根据实际需求选取适当属性和方法。

 

使用技巧:

在导航栏中添加UISegmentedControl ,实现的效果:

实现的代码:

//自定义UISegmentedcontrol

UISegmentedControl *segmentedControl=[[UISegmentedControlalloc] initWithFrame:CGRectMake(80.0f, 8.0f, 200.0f, 30.0f)]; 
   

[segmentedControl insertSegmentWithTitle:@"Food toeat" atIndex:0 animated:YES]; 
   

[segmentedControl insertSegmentWithTitle:@"Food toavoid" atIndex:1 animated:YES]; 
   

segmentedControl.segmentedControlStyle =UISegmentedControlStyleBar; 
   

segmentedControl.momentary =YES; 
   

segmentedControl.multipleTouchEnabled=NO; 
   

[segmentedControl addTarget:selfaction:@selector(Selectbutton:) forControlEvents:UIControlEventValueChanged]; 
   

UIBarButtonItem *segButton = [[UIBarButtonItem alloc]initWithCustomView:segmentedControl];  

//自定义UIBarButtonItem,封装定义好的UIsegmented
   

[segmentedControl release]; 
   

self.navigationItem.rightBarButtonItem = segButton; 

//添加到导航栏中
   

[segButton release];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值