zoukankan      html  css  js  c++  java
  • 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;//设置在点击后是否恢复原样     

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

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

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

     

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

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

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

     //   [segmentedControl setContentOffset: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:NO forSegmentAtIndex:4];//设置指定索引选项不可选  

       // BOOL enableFlag = [segmentedControl isEnabledForSegmentAtIndex: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=[[UISegmentedControl alloc] initWithFrame:CGRectMake(80.0f, 8.0f, 200.0f, 30.0f) ]; 
        [segmentedControl insertSegmentWithTitle:@"Food to eat" atIndex:0 animated:YES]; 
        [segmentedControl insertSegmentWithTitle:@"Food to avoid" atIndex:1 animated:YES]; 
        segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 
        segmentedControl.momentary = YES; 
        segmentedControl.multipleTouchEnabled=NO; 
        [segmentedControl addTarget:self action:@selector(Selectbutton:) forControlEvents:UIControlEventValueChanged]; 
        UIBarButtonItem *segButton = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl];  //自定义UIBarButtonItem,封装定义好的UIsegmented。
        [segmentedControl release]; 
        self.navigationItem.rightBarButtonItem = segButton;  //添加到导航栏中
        [segButton release];

  • 相关阅读:
    LVS基于DR模式负载均衡的配置
    Linux源码安装mysql 5.6.12 (cmake编译)
    HOSt ip is not allowed to connect to this MySql server
    zoj 3229 Shoot the Bullet(无源汇上下界最大流)
    hdu 3987 Harry Potter and the Forbidden Forest 求割边最少的最小割
    poj 2391 Ombrophobic Bovines(最大流+floyd+二分)
    URAL 1430 Crime and Punishment
    hdu 2048 神、上帝以及老天爷(错排)
    hdu 3367 Pseudoforest(最大生成树)
    FOJ 1683 纪念SlingShot(矩阵快速幂)
  • 原文地址:https://www.cnblogs.com/NSNULL/p/4609817.html
Copyright © 2011-2022 走看看