分段组件提供一栏按钮,但同一时间只能激活其中一个按钮。分段组件会导致屏幕上看到的内容发生变化。它们常用于在不同类别的信息之间选择,或在不同的应用屏幕之间切换。
// // ViewController.m // UISegmentedControl // // Created by Apple on 16/5/11. // Copyright © 2016年 Apple. All rights reserved. // #import "ViewController.h" @interface ViewController () @end UIView* view; NSArray* imgList; @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSArray* menuList = [NSArray arrayWithObjects:@"A",@"B",@"C",@"D", nil]; // 分段控制器(分段显示不同的数据) UISegmentedControl* segmentedControl = [[UISegmentedControl alloc] initWithItems:menuList]; segmentedControl.frame = CGRectMake(10, 20, 300, 50); // 设置默认选中的Item( 默认从 0 开始) [segmentedControl setSelectedSegmentIndex:0]; // 设置某项Item的Title [segmentedControl setTitle:@"提莫" forSegmentAtIndex:0]; [segmentedControl setTitle:@"提莫1" forSegmentAtIndex:1]; [segmentedControl setTitle:@"提莫2" forSegmentAtIndex:2]; [segmentedControl setTitle:@"提莫3" forSegmentAtIndex:3]; // 是否允许点击后还原效果(默认是NO),即分段栏是否恢复为选中前的颜色 //[segmentedControl setMomentary:YES]; // 绑定事件处理方法 [segmentedControl addTarget:self action:@selector(onChange:) forControlEvents:UIControlEventValueChanged]; [self.view addSubview:segmentedControl]; // 创建一个UIView,用来显示图片 view = [[UIView alloc] initWithFrame: CGRectMake(10, 80, 300, 380)]; view.backgroundColor = [UIColor redColor]; // 4张图片 UIImageView* img1 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 300, 380)]; [img1 setImage:[UIImage imageNamed:@"1.jpg"]]; UIImageView* img2 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 300, 380)]; [img2 setImage:[UIImage imageNamed:@"2.jpg"]]; UIImageView* img3 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 300, 380)]; [img3 setImage:[UIImage imageNamed:@"3.jpg"]]; UIImageView* img4 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 300, 380)]; [img4 setImage:[UIImage imageNamed:@"4.jpg"]]; imgList = @[img1,img2,img3,img4]; // 默认显示第一张图片 [view addSubview:img1]; [self.view addSubview:view]; } -(void)onChange:(UISegmentedControl*) segmentedC{ //segmentedC.selectedSegmentIndex 表示当前选中的某项的index switch (segmentedC.selectedSegmentIndex) { case 0: [view addSubview:[imgList objectAtIndex:0]]; break; case 1: [view addSubview:[imgList objectAtIndex:1]]; break; case 2: [view addSubview:[imgList objectAtIndex:2]]; break; case 3: [view addSubview:[imgList objectAtIndex:3]]; break; } } @end