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分段控件代替了桌面OS上的单选按钮。不过它的选项个数非常有限,因为你的IOS设备屏幕有限。当我们需要使用选项非常少的单选按钮时它很合适。 一、创建 UISegm...

UISegmentedControl分段控件的基本概念和使用方法

IOS学习笔记(七)之UISegmentedControl分段控件的基本概念和使用方法(博客地址:http://blog.csdn.net/developer_jiangqq)     ...

iOS UISegmentedControl分段按钮

实现如图效果类似手机QQ页面上面的分段按钮.我在UIViewController里写的这个控件,并且新建了两个UIView页面,一个红色,一个绿色,点击第一个按钮显示红色页面,点击第二个按钮显示绿色页...

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

在ios7中有一种扁平风格的控件叫做分段选择控件UISegmentedControl,控件分为一排,横放着几个被简单线条隔开的按钮,每次点击只能选择其中一个按钮,他类似于tabbar但是又稍微有点区别...

19.UISegmentedControl(分段按钮)

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

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

在ios7中有一种扁平风格的控件叫做分段选择控件UISegmentedControl,控件分为一排,横放着几个被简单线条隔开的按钮,每次点击只能选择其中一个按钮,他类似于tabbar但是又稍微有点区别...

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

在ios7中有一种扁平风格的控件叫做分段选择控件UISegmentedControl,控件上横放或竖放着几个被简单线条隔开的按钮,每次点击能切换不同的按钮和按钮所对应的界面,比如qq客户端V6.5.3...

UISegmentedControl 分段控件-IOS开发

声明 欢迎转载,但是请尊重作者劳动成果,转载请保留此框内声明,谢谢。 文章出处:http://blog.csdn.net/iukey UISegmentedControl分段控件...
  • iukey
  • iukey
  • 2012-02-29 13:14
  • 19022

UISegmentedControl分段控件

欢迎转载,但是请尊重作者劳动成果,转载请保留此框内声明,谢谢。 文章出处:http://blog.csdn.net/iukey UISegmentedControl分段控件代替了桌面OS上...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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