19.UISegmentedControl(分段按钮)

原创 2015年11月17日 21:33:52

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

初始化的数组中 必须是 字符串(标题) 或者 图片

NSArray *itemArray = @[@”第一段”,@”第二段”,@”第三段”];

1.初始化分段按钮

UISegmentedControl *segmentControl = [[UISegmentedControl alloc]initWithItems:itemArray];

2.位置

segmentControl.frame = CGRectMake(20, 100, 300, 50);

3.添加背景颜色

segmentControl.backgroundColor = [UIColor yellowColor];

4.设置默认选中(索引从0开始)

segmentControl.selectedSegmentIndex = 1;

5.修改选中的颜色

segmentControl.tintColor = [UIColor greenColor];

6.修改中间段的宽度

[segmentControl setWidth:200 forSegmentAtIndex:1];

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

实现页面跳转

1.把控制器 改成属性 方便调用

@property (nonatomic,retain)TwoViewController *twoVC;
@property (nonatomic,retain)ThreeViewController *threeVC;
@property (nonatomic,retain)FourViewController *fourVC;

释放控制器
-(void)dealloc
{
[_twoVC release];
[_threeVC release];
[_fourVC release];
[super dealloc];
}

2.如果选用 图片初始化 必须使用镂空图

创建三张图片
UIImage *image = [UIImage imageNamed:@”01-refresh”];
UIImage *image1 = [UIImage imageNamed:@”02-redo”];
UIImage *image2 = [UIImage imageNamed:@”03-loopback”];

把图片添加到数组里
NSArray *array = @[image,image1,image2];

3.初始化一个UISegmentedControl对象

UISegmentedControl *segmentControl = [[UISegmentedControl alloc] initWithItems:array];

4.添加属性

添加位置
segmentControl.frame = CGRectMake(20, 100, 300, 50);
添加背景颜色
segmentControl.backgroundColor = [UIColor greenColor];
添加选中颜色
segmentControl.tintColor = [UIColor yellowColor];
添加默认选中索引
segmentControl.selectedSegmentIndex = 0;

5.添加一个点击事件

选取ValueChanged 实际上是监测的 索引的变化
[segmentControl addTarget:self action:@selector(segmentedAction:) forControlEvents:(UIControlEventValueChanged)];

6.添加到视图上

[self.view addSubview:segmentControl];

7.释放

[segmentControl release];

8.创建控制器 并添加为子控制器

self.twoVC = [[TwoViewController alloc] init];

添加子控制器并且显示视图
[self addChildViewController:self.twoVC];
[self.view addSubview:self.twoVC.view];
[_twoVC release];

self.threeVC = [[ThreeViewController alloc] init];
[self addChildViewController:self.threeVC];
[self.view addSubview:self.threeVC.view];
[_threeVC release];

self.fourVC = [[FourViewController alloc] init];
[self addChildViewController:self.fourVC];
[self.view addSubview:self.fourVC.view];
[_fourVC release];

最前面的应该是segment
然后是默认选中第一界面视图 TwoVC.view
[self.view bringSubviewToFront:self.twoVC.view];
[self.view bringSubviewToFront:segmentControl];

9.实现点击方法

-(void)segmentedAction:(UISegmentedControl *)segment;
{

需求 判断出 点击了那个分段按钮
每个分段按钮 控制一个界面 每个界面是一个控制器来控制 并且 可以切换界面
segment.selectedSegmentIndex 选中的索引
通过索引 切换不同的页面
switch (segment.selectedSegmentIndex) {
case 0:
[self.view bringSubviewToFront:self.twoVC.view];

break;
case 1:
[self.view bringSubviewToFront:self.threeVC.view];

break;
case 2:
[self.view bringSubviewToFront:self.fourVC.view];

break;

default:
break;
}

每次都把segment放最上面
[self.view bringSubviewToFront:segment];

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS 导航条上添加UISegmentedControl,点击分类按钮,显示不同的ViewController

UISegmentedControl的使用最近项目中需要用到UISegmentedControl,在导航条上添加一个UISegmentedControl,点击不同的按钮,显示不同的ViewContro...
  • ycf03211230
  • ycf03211230
  • 2017年01月05日 17:47
  • 2856

158,开关按钮,滑块按钮和分段按钮

#import "ViewController.h" @interface ViewController () @property (weak, nonatomic) ...
  • dreamljs
  • dreamljs
  • 2015年12月31日 16:33
  • 357

iOS-滑竿、分段选择器、开关按钮的简单实现

滑竿、分段选择器、开关按钮的简单实现,它们都是UIControl的子类、下面是代码示例: #import "ViewController.h"   @interface ViewCo...
  • wangwei1138568289
  • wangwei1138568289
  • 2016年03月23日 19:51
  • 1337

iOS UISegmentedControl分段按钮

实现如图效果类似手机QQ页面上面的分段按钮.我在UIViewController里写的这个控件,并且新建了两个UIView页面,一个红色,一个绿色,点击第一个按钮显示红色页面,点击第二个按钮显示绿色页...
  • shanhu_t
  • shanhu_t
  • 2015年12月16日 21:06
  • 290

android仿苹果分段按钮

这里只简单做了两个按钮的。 首先是两个按钮的背景: res/drawable/seg_left.xml
  • xrl2012
  • xrl2012
  • 2015年01月12日 09:04
  • 439

UISegmentedControl分段按钮的使用

UISegmentedControl分段按钮的使用 | 郝旭. 实现如下代码: - (void)viewDidLoad { [super viewDidLoad]; segment...
  • wishfly
  • wishfly
  • 2012年02月23日 21:52
  • 624

Markdown编辑分段函数

markdown编辑公式的文章很多,但关于分段函数形式的文章比较少,而且与Latex的语法不一样。本文主要讲解一下。...
  • zhengjihao
  • zhengjihao
  • 2017年09月02日 11:03
  • 751

HMSegmentedControl分段控制器的学习与使用

HMSegmentedControl 是 UISegmentedControl 的替代品,模仿了 Google Currents 使用的效果。 HMSegementedControl可以配合UI...
  • gfl_emily
  • gfl_emily
  • 2017年06月23日 14:23
  • 613

操作系统存储管理之分段存储

需求从固定分区到动态分区,从分区方式到分页方式发展提高了主存空间利用率。 而分段存储管理的引入,则满足用户(程序员)编程和使用上的要求,这些要求其它各种存储管理技术难以满足。需求解析: 在分页存储管...
  • qwe6112071
  • qwe6112071
  • 2017年04月23日 14:57
  • 656

java-RSA加密解密,支持分段加解密

java-RSA加密解密,支持分段加解密 RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adlem...
  • xxj_jing
  • xxj_jing
  • 2017年06月12日 16:58
  • 1072
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:19.UISegmentedControl(分段按钮)
举报原因:
原因补充:

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