UISegmentedControl 分段控制 一个小demo

原创 2015年11月17日 19:59:16

**分段控制 (UISegmentedControl)
知识点:
分段控制的创建方法一般用initWithItems:(NSArray *)array
这个数组中的对象必须全是字符串对象,或者图片对象,并且图片对象还必须是镂空图才能显示
重要的属性:
@property(nonatomic) NSInteger selectedSegmentIndex;
核心方法:
-(void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;**

下面通过一个demo实现视图的切换:
这里初始化就以图片为例:(镂空图)
这是工程下创建类:
其中最后三个控制器,只需要设置其颜色就可以了,设置window的根视图控制器代码这里不列出了.

主要代码是在根视图控制器中:

#import “RootViewController.m代码”


#import "RootViewController.h"
#import "FirstViewController.h"
#import "SecondViewController.h"
#import "ThirdViewController.h"

@interface RootViewController ()
//  设置成属性,是为了在获取到action的时候,方便取值和赋值
@property (nonatomic,retain)FirstViewController *firstVC;
@property (nonatomic,retain)SecondViewController *secondVC;
@property (nonatomic,retain)ThirdViewController *thirdVC;
@end

@implementation RootViewController

- (void)dealloc
{
    [_firstVC release];
    [_secondVC release];
    [_thirdVC release];
    [super dealloc];
}

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    //  创建一个图片数组
    UIImage *img1 = [UIImage imageNamed:@"01-refresh"];
    UIImage *img2 = [UIImage imageNamed:@"02-redo"];
    UIImage *img3 = [UIImage imageNamed:@"03-loopback"];
    NSArray *itemsArray = @[img1,img2,img3];

    //  以图片数组初始化一个UISegmentedControl
    UISegmentedControl *segmentControl = [[UISegmentedControl alloc]initWithItems:itemsArray];
    segmentControl.frame = CGRectMake(100, 100, 200, 50);
    segmentControl.backgroundColor = [UIColor cyanColor];
    //  设置初始化选中的是哪个位置
    segmentControl.selectedSegmentIndex = 1;
    //  改变对象对应下标的宽度
    [segmentControl setWidth:100 forSegmentAtIndex:1];
    //  设置选中的填充色
    [segmentControl setTintColor:[UIColor redColor]];

    //  为这个分段控制控件添加方法
    //  记住是根据值的变化,也就是下标发生变化
    [segmentControl addTarget:self action:@selector(segmentedControlAction:) forControlEvents:UIControlEventValueChanged];

    [self.view addSubview:segmentControl];
    [segmentControl release];

    //  创建控制器,用本控制器进行管理,将其设置成本类的子控制器
    //  再讲自控制器的视图加到跟控制器视图上
    self.firstVC = [[FirstViewController alloc]init];
    [self.view addSubview:self.firstVC.view];
    self.secondVC = [[SecondViewController alloc]init];
    [self.view addSubview:self.secondVC.view];
    self.thirdVC = [[ThirdViewController alloc]init];
    [self.view addSubview:self.thirdVC.view];

    //  释放
    [_firstVC release];
    [_secondVC release];
    [_thirdVC release];

    //  初始化视图显示
    //  如果你不初始化视图,那么你将无法获取到action,因为这些view会覆盖掉先加入的segmentedControl
    //  这里初始话的view看你对应的初始化的选中的位置
    [self.view bringSubviewToFront:self.secondVC.view];
    [self.view bringSubviewToFront:segmentControl];

}

//  实现方法
- (void)segmentedControlAction:(UISegmentedControl *)segmentedControl
{
    //  实现视图的切换
    switch (segmentedControl.selectedSegmentIndex) {
        case 0:
            [self.view bringSubviewToFront:self.firstVC.view];
            break;
        case 1:
            [self.view bringSubviewToFront:self.secondVC.view];
            break;
        case 2:
            [self.view bringSubviewToFront:self.thirdVC.view];
            break;

        default:
            break;
    }
    //  由于把segmentedControl放在最上面是每个分支都有的可以写在外部,减少代码
    [self.view bringSubviewToFront:segmentedControl];

}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end

三维效果图
windows->根视图->三个自控制的视图->分段控制空间的视图
效果图
这里写图片描述
这里写图片描述
这里写图片描述

UISegmentedControl分段控件使用详解

分段控件是我们常用的控件之一,今天把具体用法总结了下: 初始化UISegmentedControl     NSArray *segmentedArray = [[...
  • wakice
  • wakice
  • 2016年01月30日 22:37
  • 599

19.UISegmentedControl(分段按钮)

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

iOS开发学习笔记——分段视图(UISegmentedControl)

分段控制UISegmentedControl 官网文档:UISegmentedControl  Segmented Controls.(UIkit Users Interface Catalog,具...
  • qq_14920635
  • qq_14920635
  • 2016年03月30日 16:24
  • 469

Swift - 分段选择控件(UISegmentedControl)的用法

1,选择控件的创建,并监听控件选择值 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
  • swift_vip
  • swift_vip
  • 2016年06月21日 10:06
  • 1801

UISegmentedControl分段控制 跳转各界面

一、对于分段控件的三方插件有很多,个人在闲着的时候也就写了一个,适合初级的人员上手。 二、先谈一下思路: 整体的效果是 UISegmentedControl + UIView 做界面切换 创...
  • qq_16540651
  • qq_16540651
  • 2016年03月30日 14:03
  • 1977

UISegmentedControl切换页面

UISegmentedControl切换页面
  • qq_29892943
  • qq_29892943
  • 2015年08月26日 11:27
  • 1622

swift UISegmentedControl

发现不是很好用,因为有时候需要图片和文字同时存在,所以一般还是自定义了        /* swift 3.0    UISegmentedControl的使用                 ...
  • IOS_fresh_monkey
  • IOS_fresh_monkey
  • 2016年12月23日 10:09
  • 666

RadioGroup实现类似ios的分段选择(UISegmentedControl)控件

文章来源:http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0512/1615.html 在ios7中有一种扁平风格的控件叫做分段...
  • libaineu2004
  • libaineu2004
  • 2015年03月23日 23:19
  • 1573

iOS 利用 UISegmentedControl在同一个控制器切换不同的tableView

先上效果图1:2: 类似于QQ顶部的消息、电话选择。原理比较简单:主要通过UISegmentedControl来控制两个tableView的显示来隐藏。直接上代码#import "LeaveList...
  • qq_30070947
  • qq_30070947
  • 2017年01月06日 16:15
  • 2662

android仿ios实现分段选择控件UISegmentedControl

在ios7中有一种扁平风格的控件叫做分段选择控件UISegmentedControl,控件上横放或竖放着几个被简单线条隔开的按钮,每次点击能切换不同的按钮和按钮所对应的界面,比如qq客户端V6.5.3...
  • sunshine_mood
  • sunshine_mood
  • 2016年09月07日 16:20
  • 1859
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UISegmentedControl 分段控制 一个小demo
举报原因:
原因补充:

(最多只允许输入30个字)