美文网首页
UISegmentedControl的详细使用

UISegmentedControl的详细使用

作者: doudou19913 | 来源:发表于2017-02-06 18:32 被阅读0次

    当用户输入不仅仅是布尔值时,可使用分段控件(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= [UIColorredColor];

    //有基本四种样式

    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:[segmentedControlimageForSegmentAtIndex:1]];

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

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

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

    titleForSegmentAtIndex.text= [segmentedControltitleForSegmentAtIndex:0];

    //获取总选项数segmentedControl.numberOfSegments

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

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

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

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

    widthForSegmentAtIndex.text= [NSStringstringWithFormat:@"%f",[segmentedControlwidthForSegmentAtIndex:2]];

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

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

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

    //具体委托方法实例

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

    NSIntegerIndex = Seg.selectedSegmentIndex;

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

    switch(Index) {

    case0:

    [selfselectmyView1];

    break;

    case1:

    [selfselectmyView2];

    break;

    case2:

    [selfselectmyView3];

    break;

    case3:

    [selfselectmyView4];

    break;

    case4:

    [selfselectmyView5];

    break;

    case5:

    [selfselectmyView6];

    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];

    相关文章

      网友评论

          本文标题:UISegmentedControl的详细使用

          本文链接:https://www.haomeiwen.com/subject/tyyuittx.html