`
sgm881218
  • 浏览: 58301 次
社区版块
存档分类
最新评论

UISegmentedControl 使用

    博客分类:
  • ios
阅读更多

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

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

    //初始化UISegmentedControl  

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

    segmentedControl.frame = CGRectMake(20.0, 20.0250.050.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.0120.030.030.0);  ;

    

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

    UILabel *titleForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(100.0160.030.030.0)];  

    titleForSegmentAtIndex.text = [segmentedControl titleForSegmentAtIndex:0];  

    

    //获取总选项数segmentedControl.numberOfSegments  

    UILabel *numberOfSegments = [[UILabel alloc]initWithFrame:CGRectMake(140.0170.030.030.0)];  

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

 

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

    UILabel *widthForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(180.0210.070.030.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];

0
0
分享到:
评论

相关推荐

    swift-UISegmentedControl使用ChildViewController切换UIViewcontroller

    在这个特定的场景中,"swift-UISegmentedControl使用ChildViewController切换UIViewcontroller"的标题表明我们将讨论如何利用`UISegmentedControl`来动态地切换`UIViewController`子类的实例,以此实现界面内容的...

    UISegmentedControl

    5. **自定义外观**:可以使用`appearance` API来自定义所有`UISegmentedControl`的外观,或者针对特定实例使用`setTitleTextAttributes:forState:`来改变文字样式,`setDividerImage:forLeftSegmentState:...

    iphone 开发基础控件UISegmentedControl

    iphone中的基础控件UISegmentedControl,适合初学者,主要学习UISegmentedControl的常用属性设置、点击事件、分段控制器,每一个按钮都有自己独立的功能,其数据源是一般是数组等

    UISegmentedControl Demo代码

    例如,可以使用`setTitleTextAttributes:for:`方法来修改文本属性: ```objective-c NSDictionary *attributes = @{NSForegroundColorAttributeName : [UIColor blueColor]}; [segmentedControl ...

    IOS源码应用Demo-UISegmentedControl 的 导航式风格.zip

    【iOS 源码应用Demo-UISegmentedControl的...通过研究这个Demo,开发者不仅可以学会如何使用UISegmentedControl,还能掌握在实际项目中构建导航式界面的技巧。对于iOS开发的学习者来说,这是一个非常有价值的参考资源。

    ios-自定义UISegmentedControl.zip

    在iOS应用开发中,`UISegmentedControl` 是一个常用组件,用于展示多个互斥的选项,用户可以方便地在这些选项间切换。这个压缩包"ios-自定义UISegmentedControl.zip"提供了对系统默认`UISegmentedControl`的一个...

    IOS应用源码——自定义颜色的UISegmentedControl.zip

    在解压后的文件中,"full (1).png"可能是展示自定义UISegmentedControl效果的截图,而"说明.txt"可能包含有关如何使用这个示例代码的指导。"oettam-MCSegmentedControl-244408e.zip"则是第三方库的源代码,可以...

    利用 UISegmentedControl 实现的滑块儿 Tab 效果.zip

    为了实现滑动动画,开发者可能会使用CADisplayLink或者Core Animation来平滑地改变选中段的位置,同时更新相应的视图内容。 Swift语言的灵活性使得这个自定义过程变得相对简单。Swift提供了强大的面向对象编程特性...

    ios应用源码之自定义颜色的uisegmentedcontrol 20181210

    在iOS应用开发中,`UISegmentedControl` 是一个常用组件,它允许用户在多个选项之间进行...而实际的源码文件会提供具体的实现细节,包括如何结合使用上述方法来创建一个美观且功能完整的自定义`UISegmentedControl`。

    ios-一个视图中两个控制器来回的切换 UISegmentedControl UIwebView.zip

    在本示例中,"ios-一个视图中两个控制器来回的切换 UISegmentedControl UIwebView.zip" 提供了一个使用UISegmentedControl来切换UIWebView展示内容的实现方式。这个场景广泛应用于构建具有导航菜单的应用,如“菜单...

    swift-采用Swift编写自定义UISegmentedControl实现的滑块Tab效果

    本教程将深入探讨如何使用Swift语言创建一个具有滑块Tab效果的自定义`UISegmentedControl`。 首先,我们需要了解`UISegmentedControl`的基本用法。在Swift中,创建一个简单的`UISegmentedControl`可以通过以下代码...

    swift-swift语言绘制柱状图饼状图UISegmentedControl的使用。

    关于`UISegmentedControl`的使用,它是iOS中常见的一种控件,用于在多个选项间进行切换。在图表中,`UISegmentedControl`可以用来切换不同的图表类型或者显示不同的数据集。例如,你可以监听`UISegmentedControl`的...

    Android仿iOS7的UISegmentedControl 分段

    在Android开发中,有时我们可能需要实现类似iOS7中的UISegmentedControl效果,这是一种常见的用于切换不同视图或展示选项的组件。为了在Android平台上创建这样的分段控制器,我们需要自定义一个视图来达到目的。以下...

    用UISegmentedControl模拟TabbarController效果

    本文将深入探讨如何使用UISegmentedControl来模拟这种效果,以替代标准的UITabBarController,同时实现页面之间的平滑过渡。 首先,我们需要理解UISegmentedControl和UITabBarController的基本概念。...

    IOS应用源码——UISegmentedControl 的 导航式风格.rar

    在iOS应用中,使用UISegmentedControl作为导航方式可以节省屏幕空间,提高用户体验,尤其在手机屏幕较小的情况下更为明显。 **实现方法** 1. **初始化和配置**: 首先,你需要创建一个UISegmentedControl对象,并...

    IOS应用源码——自定义颜色的UISegmentedControl.rar

    在iOS开发中,UISegmentedControl是一个非常常用的组件,它允许用户在多个选项间进行切换。这个源码项目“自定义颜色的UISegmentedControl”显然聚焦于如何为UISegmentedControl定制特定的颜色方案,以匹配应用的...

    IOS应用源码——UISegmentedControl 的 导航式风格.zip

    5. Auto Layout:使用Auto Layout来确保UISegmentedControl在不同屏幕尺寸和设备方向下都能正确显示。 6. KVO(Key-Value Observing)或Notification:观察并响应UISegmentedControl的值改变,以便在其他地方更新...

    IOS应用源码之自定义颜色的UISegmentedControl.zip

    在iOS应用开发中,UISegmentedControl是一种常用的UI组件,它允许用户在多个选项之间进行切换。本资源“IOS应用源码之自定义颜色的UISegmentedControl.zip”提供了关于如何自定义UISegmentedControl颜色的示例代码,...

    IOS应用源码Demo-自定义颜色的UISegmentedControl-毕设学习.zip

    4. **事件响应**: 在源码中,开发者可能会使用`- (IBAction)segmentedControlValueChanged:(UISegmentedControl *)sender`方法来处理用户的选择变化,根据不同的索引执行相应的操作。 5. **布局与尺寸**: 自定义...

Global site tag (gtag.js) - Google Analytics